--- /dev/null
+INSTALLATION
+------------
+Please read wiki to find step by step instrictions
+
+how to compile and flash it to Arduino:
+http://wiki.interplaymedium.org/index.php/InterplayMedium/LEDTetris
+
+General instructions for Adruino + AXOD microserver integration:
+http://wiki.interplaymedium.org/index.php/InterplayMedium/AxonAmpArduino
+
+
+
+
--- /dev/null
+:00000001FF\r
--- /dev/null
+:100000000C9434000C9451000C9451000C94510049\r
+:100010000C9451000C9451000C9451000C9451001C\r
+:100020000C9451000C9451000C9451000C9451000C\r
+:100030000C9451000C9451000C9451000C945100FC\r
+:100040000C9451000C9451000C9475000C945100C8\r
+:100050000C9451000C9451000C9451000C945100DC\r
+:100060000C9451000C94510011241FBECFEFD4E02A\r
+:10007000DEBFCDBF11E0A0E0B1E0E2E1FEE002C0F2\r
+:1000800005900D92AA38B107D9F711E0AAE8B1E0BE\r
+:1000900001C01D92AE39B107E1F70E94C6050C946C\r
+:1000A00007070C940000E1ECF0E080818068808319\r
+:1000B00008959093C5008093C40086E08093C200A9\r
+:1000C000E1ECF0E080818861808308958091C00038\r
+:1000D00087FFFCCF8091C6000895982F8091C000C3\r
+:1000E00085FFFCCF9093C60008951F920F920FB624\r
+:1000F0000F9211248F93DF93CF930F92CDB7DEB77A\r
+:100100008091C6008983898180939D010F90CF9152\r
+:10011000DF918F910F900FBE0F901F901895FC01EB\r
+:1001200007C08091C00085FFFCCF9093C600319638\r
+:1001300090819923B1F70895CF93DF93EC0128EED6\r
+:1001400033E0E0E0F0E0CE01B9010E94D206462F94\r
+:100150008091C00085FFFCCF405D4093C6004053B6\r
+:10016000C9016AE070E00E94D2063196E430F105E0\r
+:1001700071F0842F90E0AC01429FC001439F900D2D\r
+:10018000529F900D1124C81BD90B9B01DCCFDF912E\r
+:10019000CF910895DF93CF9300D0CDB7DEB79C0108\r
+:1001A0000FC01A82198205C089819A8101969A83AB\r
+:1001B000898389819A818B359105B1F7215030402F\r
+:1001C0002115310571F70F900F90CF91DF910895B0\r
+:1001D000DF93CF9300D0CDB7DEB79C010EC01A825B\r
+:1001E000198205C089819A8101969A8389838981C0\r
+:1001F0009A810997B9F7215030402115310579F7D7\r
+:100200000F900F90CF91DF910895DF93CF9300D09F\r
+:10021000CDB7DEB740E02A9A21E030E01A82198299\r
+:1002200005C089819A8101969A83898389819A81FF\r
+:100230008B359105B1F72150304081F72A9821E0A4\r
+:1002400030E01A82198205C089819A8101969A83C9\r
+:10025000898389819A818B359105B1F7215030408E\r
+:1002600081F74F5F4436B9F60F900F90CF91DF9131\r
+:100270000895DF93CF9300D0CDB7DEB741E050E0D3\r
+:100280002AC02A9A9A011A82198205C089819A8104\r
+:1002900001969A83898389819A810997B9F72150B8\r
+:1002A000304089F72A989A011A82198205C08981FB\r
+:1002B0009A8101969A83898389819A810997B9F7EE\r
+:1002C0002150304089F76F5F6436D9F6465F5F4F43\r
+:1002D0004932510511F060E0D4CF0F900F90CF91CB\r
+:1002E000DF910895682F27E030E041E050E02C983E\r
+:1002F000CA01022E02C0880F991F0A94E2F78623D2\r
+:1003000011F02B9A01C02B982C9A215030408FEF7E\r
+:100310002F3F380761F708950F931F93CF93DF9313\r
+:10032000162F042F2D9821E030E0C82FD0E008C010\r
+:1003300080E00E94720180E00E94720120E030E0C3\r
+:10034000C217D307ACF3812F0E947201802F04C023\r
+:1003500080E00E94720180E00E94720121971C16C9\r
+:100360001D06B4F32D982D9ADF91CF911F910F9117\r
+:100370000895482F50E0262F30E0653058F484E08F\r
+:1003800090E0821B930B02C0440F551F8A95E2F741\r
+:10039000842F08952450304002C0559547952A95E2\r
+:1003A000E2F7842F08950F931F93CF93DF93C0E05C\r
+:1003B000D0E004E010E080918C01282F30E0C217DB\r
+:1003C000D307ECF0C90103968C179D07C4F0CE014A\r
+:1003D000821B930BE0918401F0E020918B01EE0FE2\r
+:1003E000FF1FEE0FFF1FE20FF11DEE0FFF1FEE0FBD\r
+:1003F000FF1FE80FF91FEC5CFE4FE08101C0E0E059\r
+:10040000809185014E2F50E0282F30E0853048F450\r
+:10041000C801821B930B02C0440F551F8A95E2F757\r
+:1004200007C02450304002C0559547952A95E2F701\r
+:10043000CE018F5F682FFE01EE56FE4F8081482B64\r
+:1004400081E00E948C012196C830D10509F0B3CF1C\r
+:10045000DF91CF911F910F9108951F93CF93DF9359\r
+:1004600010918501812F90E044E050E0481B590B2A\r
+:10047000EC01249780918C0130918B0120918401B3\r
+:10048000E22FF0E0EE0FFF1FEE0FFF1FE30FF11D55\r
+:10049000EE0FFF1FEE0FFF1FEC5CFE4F90E0DC0144\r
+:1004A000AD56BE4FBC0169567E4F8081282F30E08B\r
+:1004B000153038F4042E02C0220F331F0A94E2F7DD\r
+:1004C00006C00C2E02C0359527950A94E2F78C9150\r
+:1004D000282311F081E006C031961196A617B707C0\r
+:1004E00021F780E0DF91CF911F9108951F93CF9363\r
+:1004F000DF9310918501812F90E044E050E0481B8C\r
+:10050000590BEC01249780918C0130918B01209143\r
+:100510008401E22FF0E0EE0FFF1FEE0FFF1FE30F4D\r
+:10052000F11DEE0FFF1FEE0FFF1FEC5CFE4F90E082\r
+:10053000DC01AE56BE4FBC016A567E4F8081282F2B\r
+:1005400030E0153038F4042E02C0220F331F0A9415\r
+:10055000E2F706C00C2E02C0359527950A94E2F703\r
+:100560008C91282311F081E006C031961196A617D0\r
+:10057000B70721F780E0DF91CF911F910895BF92D7\r
+:10058000CF92DF92EF92FF920F931F93CF93DF935F\r
+:1005900050918501852F90E024E030E06901C81A70\r
+:1005A000D90A0CEFE02E0FEFF02EE80EF91EB52E53\r
+:1005B000BA948B2D90E08901081B190BEC0124974C\r
+:1005C00080918C0130918B0120918401E22FF0E029\r
+:1005D000EE0FFF1FEE0FFF1FE30FF11DEE0FFF1FCA\r
+:1005E000EE0FFF1FEC5CFE4F90E0DC01AE56BE4FFD\r
+:1005F000BC016A567E4F4081242F30E0553038F4DC\r
+:100600000C2C02C0220F331F0A94E2F706C00E2CF6\r
+:1006100002C0359527950A94E2F727FD1CC0242FC8\r
+:1006200030E084E08B1538F0002E02C0220F331F1B\r
+:100630000A94E2F706C00C2E02C0359527950A945D\r
+:10064000E2F78C91282339F431961196A617B70753\r
+:1006500091F680E001C081E0DF91CF911F910F9171\r
+:10066000FF90EF90DF90CF90BF900895BF92CF9210\r
+:10067000DF92EF92FF920F931F93CF93DF935091EE\r
+:100680008501852F90E024E030E06901C81AD90A7D\r
+:100690004CEFE42E4FEFF42EE80EF91EB52EB39476\r
+:1006A0008B2D90E08901081B190BEC012497809198\r
+:1006B0008C0130918B0120918401E22FF0E0EE0F4C\r
+:1006C000FF1FEE0FFF1FE30FF11DEE0FFF1FEE0FD9\r
+:1006D000FF1FEC5CFE4F90E0DC01AE56BE4FBC014C\r
+:1006E0006A567E4F4081242F30E0553038F40C2C70\r
+:1006F00002C0220F331F0A94E2F706C00E2C02C07C\r
+:10070000359527950A94E2F720FD1CC0242F30E090\r
+:1007100084E08B1538F0002E02C0220F331F0A949C\r
+:10072000E2F706C00C2E02C0359527950A94E2F731\r
+:100730008C91282339F431961196A617B70791F6B4\r
+:1007400080E001C081E0DF91CF911F910F91FF9078\r
+:10075000EF90DF90CF90BF9008950F931F93CF93AA\r
+:10076000DF9380918B01833010F020E002C0282FAE\r
+:100770002F5F5091840140918501842F90E064E0C7\r
+:1007800070E0681B790B8C010450104080918C0143\r
+:10079000E52FF0E0EE0FFF1FEE0FFF1FE20FF11D40\r
+:1007A000EE0FFF1FEE0FFF1FEC5CFE4F90E0DC0131\r
+:1007B000AE56BE4FEC01CA56DE4F8081282F30E086\r
+:1007C000453038F4062E02C0220F331F0A94E2F798\r
+:1007D00006C0002E02C0359527950A94E2F75130E5\r
+:1007E00031F0523011F0533029F4413099F0483053\r
+:1007F00039F410C0543021F4423061F0473051F0E8\r
+:100800008C91282339F431961196AC17BD07A9F6BF\r
+:1008100080E001C081E0DF91CF911F910F91089599\r
+:10082000CF92DF92EF92FF920F931F93DF93CF93BC\r
+:1008300000D0CDB7DEB780918C01B7E0EB2EE82277\r
+:10084000E39400E010E0869586958695C82EC394C3\r
+:10085000D02E80918C01F801E80FF11DE830F105F0\r
+:100860000CF06BC0EE56FE4F80818F3F09F065C0E3\r
+:10087000FF248C2D6E2D40E00E948C0128EE33E089\r
+:100880001A82198205C089819A8101969A83898387\r
+:1008900089819A818B359105B1F72150304081F7DC\r
+:1008A0008C2D6E2D4FEF0E948C0128EE33E01A82C2\r
+:1008B000198205C089819A8101969A8389838981E9\r
+:1008C0009A818B359105B1F72150304081F7F3942F\r
+:1008D00083E0F81671F690918C019D0D08C0E92F08\r
+:1008E000F0E0EE56FE4F829131968083915099232D\r
+:1008F000B1F70E943901E0E0F1E007C08091C0004B\r
+:1009000085FFFCCF9093C600319690819923B1F773\r
+:10091000809186018F5F8093860181500E949C00A8\r
+:10092000E8E0F1E007C08091C00085FFFCCF909324\r
+:10093000C600319690819923B1F70F5F1F4FE39462\r
+:100940000430110509F084CF0F900F90CF91DF9103\r
+:100950001F910F91FF90EF90DF90CF900895AF928D\r
+:10096000BF92CF92DF92FF920F931F93DF93CF93AB\r
+:1009700000D000D00F92CDB7DEB7DE011396E7E8C6\r
+:10098000F1E083E001900D928150E1F710E01F5FEC\r
+:1009900081E0612F4FEF0E948C0124EF31E01A8239\r
+:1009A000198205C089819A8101969A8389838981F8\r
+:1009B0009A818B359105B1F72150304081F718307D\r
+:1009C00031F702E911E0FF24F39481E06F2D40E05C\r
+:1009D0000E948C01F801108224EF31E01A82198202\r
+:1009E00005C089819A8101969A83898389819A8138\r
+:1009F0008B359105B1F72150304081F70F5F1F4FC4\r
+:100A0000F8E0FF1609F7FF2413E0A12EB12CAC0E7D\r
+:100A1000BD1E32C000E010E0CF2CDD24202F2F5F60\r
+:100A2000C8018C0D9D1D63E070E00E94D206F501A7\r
+:100A3000E80FF91F81E0622F40810E948C010F5F57\r
+:100A40001F4F0830110551F781E08F1510F4FF2476\r
+:100A500001C0F39428EE33E01A82198205C089811F\r
+:100A60009A8101969A83898389819A818B35910530\r
+:100A7000B1F72150304081F780919D01882351F2D8\r
+:100A800081E080938601E2E1F1E007C08091C0003F\r
+:100A900085FFFCCF9093C600319690819923B1F7E2\r
+:100AA00080918D0190918E0165E070E00E94BE06FC\r
+:100AB0008093840110928B010F900F900F900F90F4\r
+:100AC0000F90CF91DF911F910F91FF90DF90CF900A\r
+:100AD000BF90AF9008951F93CF93DF93109185013E\r
+:100AE000812F90E044E050E0481B590BEC01249723\r
+:100AF00080918C0130918B0120918401E22FF0E0F4\r
+:100B0000EE0FFF1FEE0FFF1FE30FF11DEE0FFF1F94\r
+:100B1000EE0FFF1FEC5CFE4F90E0DC01AE56BE4FC7\r
+:100B2000BC016A567E4F8081282F30E0153038F4A2\r
+:100B3000042E02C0220F331F0A94E2F706C00C2EC7\r
+:100B400002C0359527950A94E2F78C91822B8D93FC\r
+:100B50003196A617B70739F70E94100410928C013E\r
+:100B600010928B0184E080938501809191018093A4\r
+:100B700084010E947602813019F00E94D30102C0E4\r
+:100B80000E94AF04DF91CF911F9108951F93239A84\r
+:100B9000259A249A229A81E06091310147E00E94CF\r
+:100BA0008C0181E060912F0140E00E948C0181E086\r
+:100BB0006091320141E00E948C0181E0609133013B\r
+:100BC00040E00E948C0110E01F5F81E0612F40E057\r
+:100BD0000E948C011830C1F781E0609130014FE034\r
+:100BE0000E948C0187E690E09093C5008093C4003A\r
+:100BF00086E08093C2008091C10088618093C1002B\r
+:100C00008091C10080688093C10078948FEF8093B9\r
+:100C10009A0180918D01837080938401E2E1F1E07B\r
+:100C200007C08091C00085FFFCCF9093C60031962D\r
+:100C300090819923B1F760918D0170918E0180911F\r
+:100C40008F019091900120E23EE440E050E00E944C\r
+:100C5000E506611571058105910509F50E94D3012D\r
+:100C60000E942D02813031F080918C018F5F809342\r
+:100C70008C0115C090919B0180919101981719F4F6\r
+:100C80009F5F9093910180919101863010F01092B6\r
+:100C900091018091910180939B010E946B052091AD\r
+:100CA0008D0130918E0140918F01509190012F5F05\r
+:100CB0003F4F4F4F5F4F20938D0130938E014093F4\r
+:100CC0008F015093900190919D0180919C01981704\r
+:100CD00009F4B1CF80919D0180939C01822F837094\r
+:100CE0008093910180919D01833469F40E943603C1\r
+:100CF000813029F0809185018F5F809385010E946A\r
+:100D0000D3010E94050180919D01843469F40E9401\r
+:100D1000BF02813029F08091850181508093850147\r
+:100D20000E94D3010E94050180919D01823469F4E3\r
+:100D30000E942D02813029F080918C018F5F809379\r
+:100D40008C010E94D3010E94050180919D01813494\r
+:100D500091F40E94AD03813071F080918B0183305A\r
+:100D600020F48F5F80938B0102C010928B010E9450\r
+:100D7000D3010E94050110929D015DCFAA1BBB1BF0\r
+:100D800051E107C0AA1FBB1FA617B70710F0A61B8B\r
+:100D9000B70B881F991F5A95A9F780959095BC01AC\r
+:100DA000CD01089597FB092E07260AD077FD04D0C0\r
+:100DB000E5DF06D000201AF4709561957F4F089505\r
+:100DC000F6F7909581959F4F0895A1E21A2EAA1BE0\r
+:100DD000BB1BFD010DC0AA1FBB1FEE1FFF1FA217EB\r
+:100DE000B307E407F50720F0A21BB30BE40BF50BE8\r
+:100DF000661F771F881F991F1A9469F76095709571\r
+:100E0000809590959B01AC01BD01CF010895F894A8\r
+:020E1000FFCF12\r
+:100E120053636F72653A200020202020202020207A\r
+:100E22000D0053636F72653A20303030302020203D\r
+:100E320020202020200D00010203040506070809D6\r
+:100E42000A0B0C0F181800001818000018180000E0\r
+:100E52001818000030180000103020003018000070\r
+:100E62001030200000380800181010002038000050\r
+:100E72001010300010380000103010000038100040\r
+:100E820010181000003C000010101010003C000070\r
+:0A0E9200101010100404012492490E\r
+:00000001FF\r
--- /dev/null
+
+compiled.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 0000008a 00800100 00000e12 00000ea6 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00000e12 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 00000014 0080018a 0080018a 00000f30 2**0
+ ALLOC
+ 3 .stab 000006b4 00000000 00000000 00000f30 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00000054 00000000 00000000 000015e4 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end>
+ 4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 48: 0c 94 75 00 jmp 0xea ; 0xea <__vector_18>
+ 4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+
+00000068 <__ctors_end>:
+ 68: 11 24 eor r1, r1
+ 6a: 1f be out 0x3f, r1 ; 63
+ 6c: cf ef ldi r28, 0xFF ; 255
+ 6e: d4 e0 ldi r29, 0x04 ; 4
+ 70: de bf out 0x3e, r29 ; 62
+ 72: cd bf out 0x3d, r28 ; 61
+
+00000074 <__do_copy_data>:
+ 74: 11 e0 ldi r17, 0x01 ; 1
+ 76: a0 e0 ldi r26, 0x00 ; 0
+ 78: b1 e0 ldi r27, 0x01 ; 1
+ 7a: e2 e1 ldi r30, 0x12 ; 18
+ 7c: fe e0 ldi r31, 0x0E ; 14
+ 7e: 02 c0 rjmp .+4 ; 0x84 <.do_copy_data_start>
+
+00000080 <.do_copy_data_loop>:
+ 80: 05 90 lpm r0, Z+
+ 82: 0d 92 st X+, r0
+
+00000084 <.do_copy_data_start>:
+ 84: aa 38 cpi r26, 0x8A ; 138
+ 86: b1 07 cpc r27, r17
+ 88: d9 f7 brne .-10 ; 0x80 <.do_copy_data_loop>
+
+0000008a <__do_clear_bss>:
+ 8a: 11 e0 ldi r17, 0x01 ; 1
+ 8c: aa e8 ldi r26, 0x8A ; 138
+ 8e: b1 e0 ldi r27, 0x01 ; 1
+ 90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start>
+
+00000092 <.do_clear_bss_loop>:
+ 92: 1d 92 st X+, r1
+
+00000094 <.do_clear_bss_start>:
+ 94: ae 39 cpi r26, 0x9E ; 158
+ 96: b1 07 cpc r27, r17
+ 98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop>
+ 9a: 0e 94 c6 05 call 0xb8c ; 0xb8c <main>
+ 9e: 0c 94 07 07 jmp 0xe0e ; 0xe0e <_exit>
+
+000000a2 <__bad_interrupt>:
+ a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000a6 <setRXCIE_USART0>:
+ a6: e1 ec ldi r30, 0xC1 ; 193
+ a8: f0 e0 ldi r31, 0x00 ; 0
+ aa: 80 81 ld r24, Z
+ ac: 80 68 ori r24, 0x80 ; 128
+ ae: 80 83 st Z, r24
+ b0: 08 95 ret
+
+000000b2 <init_USART0>:
+ b2: 90 93 c5 00 sts 0x00C5, r25
+ b6: 80 93 c4 00 sts 0x00C4, r24
+ ba: 86 e0 ldi r24, 0x06 ; 6
+ bc: 80 93 c2 00 sts 0x00C2, r24
+ c0: e1 ec ldi r30, 0xC1 ; 193
+ c2: f0 e0 ldi r31, 0x00 ; 0
+ c4: 80 81 ld r24, Z
+ c6: 88 61 ori r24, 0x18 ; 24
+ c8: 80 83 st Z, r24
+ ca: 08 95 ret
+
+000000cc <receive_1byte_USART0>:
+ cc: 80 91 c0 00 lds r24, 0x00C0
+ d0: 87 ff sbrs r24, 7
+ d2: fc cf rjmp .-8 ; 0xcc <receive_1byte_USART0>
+ d4: 80 91 c6 00 lds r24, 0x00C6
+ d8: 08 95 ret
+
+000000da <transmit_1byte_USART0>:
+ da: 98 2f mov r25, r24
+ dc: 80 91 c0 00 lds r24, 0x00C0
+ e0: 85 ff sbrs r24, 5
+ e2: fc cf rjmp .-8 ; 0xdc <transmit_1byte_USART0+0x2>
+ e4: 90 93 c6 00 sts 0x00C6, r25
+ e8: 08 95 ret
+
+000000ea <__vector_18>:
+ ea: 1f 92 push r1
+ ec: 0f 92 push r0
+ ee: 0f b6 in r0, 0x3f ; 63
+ f0: 0f 92 push r0
+ f2: 11 24 eor r1, r1
+ f4: 8f 93 push r24
+ f6: df 93 push r29
+ f8: cf 93 push r28
+ fa: 0f 92 push r0
+ fc: cd b7 in r28, 0x3d ; 61
+ fe: de b7 in r29, 0x3e ; 62
+ 100: 80 91 c6 00 lds r24, 0x00C6
+ 104: 89 83 std Y+1, r24 ; 0x01
+ 106: 89 81 ldd r24, Y+1 ; 0x01
+ 108: 80 93 9d 01 sts 0x019D, r24
+ 10c: 0f 90 pop r0
+ 10e: cf 91 pop r28
+ 110: df 91 pop r29
+ 112: 8f 91 pop r24
+ 114: 0f 90 pop r0
+ 116: 0f be out 0x3f, r0 ; 63
+ 118: 0f 90 pop r0
+ 11a: 1f 90 pop r1
+ 11c: 18 95 reti
+
+0000011e <transmit_str_USART0>:
+ 11e: fc 01 movw r30, r24
+ 120: 07 c0 rjmp .+14 ; 0x130 <transmit_str_USART0+0x12>
+ 122: 80 91 c0 00 lds r24, 0x00C0
+ 126: 85 ff sbrs r24, 5
+ 128: fc cf rjmp .-8 ; 0x122 <transmit_str_USART0+0x4>
+ 12a: 90 93 c6 00 sts 0x00C6, r25
+ 12e: 31 96 adiw r30, 0x01 ; 1
+ 130: 90 81 ld r25, Z
+ 132: 99 23 and r25, r25
+ 134: b1 f7 brne .-20 ; 0x122 <transmit_str_USART0+0x4>
+ 136: 08 95 ret
+
+00000138 <transmit_4digit_USART0>:
+ 138: cf 93 push r28
+ 13a: df 93 push r29
+ 13c: ec 01 movw r28, r24
+ 13e: 28 ee ldi r18, 0xE8 ; 232
+ 140: 33 e0 ldi r19, 0x03 ; 3
+ 142: e0 e0 ldi r30, 0x00 ; 0
+ 144: f0 e0 ldi r31, 0x00 ; 0
+ 146: ce 01 movw r24, r28
+ 148: b9 01 movw r22, r18
+ 14a: 0e 94 d2 06 call 0xda4 ; 0xda4 <__divmodhi4>
+ 14e: 46 2f mov r20, r22
+ 150: 80 91 c0 00 lds r24, 0x00C0
+ 154: 85 ff sbrs r24, 5
+ 156: fc cf rjmp .-8 ; 0x150 <transmit_4digit_USART0+0x18>
+ 158: 40 5d subi r20, 0xD0 ; 208
+ 15a: 40 93 c6 00 sts 0x00C6, r20
+ 15e: 40 53 subi r20, 0x30 ; 48
+ 160: c9 01 movw r24, r18
+ 162: 6a e0 ldi r22, 0x0A ; 10
+ 164: 70 e0 ldi r23, 0x00 ; 0
+ 166: 0e 94 d2 06 call 0xda4 ; 0xda4 <__divmodhi4>
+ 16a: 31 96 adiw r30, 0x01 ; 1
+ 16c: e4 30 cpi r30, 0x04 ; 4
+ 16e: f1 05 cpc r31, r1
+ 170: 71 f0 breq .+28 ; 0x18e <transmit_4digit_USART0+0x56>
+ 172: 84 2f mov r24, r20
+ 174: 90 e0 ldi r25, 0x00 ; 0
+ 176: ac 01 movw r20, r24
+ 178: 42 9f mul r20, r18
+ 17a: c0 01 movw r24, r0
+ 17c: 43 9f mul r20, r19
+ 17e: 90 0d add r25, r0
+ 180: 52 9f mul r21, r18
+ 182: 90 0d add r25, r0
+ 184: 11 24 eor r1, r1
+ 186: c8 1b sub r28, r24
+ 188: d9 0b sbc r29, r25
+ 18a: 9b 01 movw r18, r22
+ 18c: dc cf rjmp .-72 ; 0x146 <transmit_4digit_USART0+0xe>
+ 18e: df 91 pop r29
+ 190: cf 91 pop r28
+ 192: 08 95 ret
+
+00000194 <delay_ms>:
+ 194: df 93 push r29
+ 196: cf 93 push r28
+ 198: 00 d0 rcall .+0 ; 0x19a <delay_ms+0x6>
+ 19a: cd b7 in r28, 0x3d ; 61
+ 19c: de b7 in r29, 0x3e ; 62
+ 19e: 9c 01 movw r18, r24
+ 1a0: 0f c0 rjmp .+30 ; 0x1c0 <delay_ms+0x2c>
+ 1a2: 1a 82 std Y+2, r1 ; 0x02
+ 1a4: 19 82 std Y+1, r1 ; 0x01
+ 1a6: 05 c0 rjmp .+10 ; 0x1b2 <delay_ms+0x1e>
+ 1a8: 89 81 ldd r24, Y+1 ; 0x01
+ 1aa: 9a 81 ldd r25, Y+2 ; 0x02
+ 1ac: 01 96 adiw r24, 0x01 ; 1
+ 1ae: 9a 83 std Y+2, r25 ; 0x02
+ 1b0: 89 83 std Y+1, r24 ; 0x01
+ 1b2: 89 81 ldd r24, Y+1 ; 0x01
+ 1b4: 9a 81 ldd r25, Y+2 ; 0x02
+ 1b6: 8b 35 cpi r24, 0x5B ; 91
+ 1b8: 91 05 cpc r25, r1
+ 1ba: b1 f7 brne .-20 ; 0x1a8 <delay_ms+0x14>
+ 1bc: 21 50 subi r18, 0x01 ; 1
+ 1be: 30 40 sbci r19, 0x00 ; 0
+ 1c0: 21 15 cp r18, r1
+ 1c2: 31 05 cpc r19, r1
+ 1c4: 71 f7 brne .-36 ; 0x1a2 <delay_ms+0xe>
+ 1c6: 0f 90 pop r0
+ 1c8: 0f 90 pop r0
+ 1ca: cf 91 pop r28
+ 1cc: df 91 pop r29
+ 1ce: 08 95 ret
+
+000001d0 <delay_ns>:
+ 1d0: df 93 push r29
+ 1d2: cf 93 push r28
+ 1d4: 00 d0 rcall .+0 ; 0x1d6 <delay_ns+0x6>
+ 1d6: cd b7 in r28, 0x3d ; 61
+ 1d8: de b7 in r29, 0x3e ; 62
+ 1da: 9c 01 movw r18, r24
+ 1dc: 0e c0 rjmp .+28 ; 0x1fa <delay_ns+0x2a>
+ 1de: 1a 82 std Y+2, r1 ; 0x02
+ 1e0: 19 82 std Y+1, r1 ; 0x01
+ 1e2: 05 c0 rjmp .+10 ; 0x1ee <delay_ns+0x1e>
+ 1e4: 89 81 ldd r24, Y+1 ; 0x01
+ 1e6: 9a 81 ldd r25, Y+2 ; 0x02
+ 1e8: 01 96 adiw r24, 0x01 ; 1
+ 1ea: 9a 83 std Y+2, r25 ; 0x02
+ 1ec: 89 83 std Y+1, r24 ; 0x01
+ 1ee: 89 81 ldd r24, Y+1 ; 0x01
+ 1f0: 9a 81 ldd r25, Y+2 ; 0x02
+ 1f2: 09 97 sbiw r24, 0x09 ; 9
+ 1f4: b9 f7 brne .-18 ; 0x1e4 <delay_ns+0x14>
+ 1f6: 21 50 subi r18, 0x01 ; 1
+ 1f8: 30 40 sbci r19, 0x00 ; 0
+ 1fa: 21 15 cp r18, r1
+ 1fc: 31 05 cpc r19, r1
+ 1fe: 79 f7 brne .-34 ; 0x1de <delay_ns+0xe>
+ 200: 0f 90 pop r0
+ 202: 0f 90 pop r0
+ 204: cf 91 pop r28
+ 206: df 91 pop r29
+ 208: 08 95 ret
+
+0000020a <beep>:
+ 20a: df 93 push r29
+ 20c: cf 93 push r28
+ 20e: 00 d0 rcall .+0 ; 0x210 <beep+0x6>
+ 210: cd b7 in r28, 0x3d ; 61
+ 212: de b7 in r29, 0x3e ; 62
+ 214: 40 e0 ldi r20, 0x00 ; 0
+ 216: 2a 9a sbi 0x05, 2 ; 5
+ 218: 21 e0 ldi r18, 0x01 ; 1
+ 21a: 30 e0 ldi r19, 0x00 ; 0
+ 21c: 1a 82 std Y+2, r1 ; 0x02
+ 21e: 19 82 std Y+1, r1 ; 0x01
+ 220: 05 c0 rjmp .+10 ; 0x22c <beep+0x22>
+ 222: 89 81 ldd r24, Y+1 ; 0x01
+ 224: 9a 81 ldd r25, Y+2 ; 0x02
+ 226: 01 96 adiw r24, 0x01 ; 1
+ 228: 9a 83 std Y+2, r25 ; 0x02
+ 22a: 89 83 std Y+1, r24 ; 0x01
+ 22c: 89 81 ldd r24, Y+1 ; 0x01
+ 22e: 9a 81 ldd r25, Y+2 ; 0x02
+ 230: 8b 35 cpi r24, 0x5B ; 91
+ 232: 91 05 cpc r25, r1
+ 234: b1 f7 brne .-20 ; 0x222 <beep+0x18>
+ 236: 21 50 subi r18, 0x01 ; 1
+ 238: 30 40 sbci r19, 0x00 ; 0
+ 23a: 81 f7 brne .-32 ; 0x21c <beep+0x12>
+ 23c: 2a 98 cbi 0x05, 2 ; 5
+ 23e: 21 e0 ldi r18, 0x01 ; 1
+ 240: 30 e0 ldi r19, 0x00 ; 0
+ 242: 1a 82 std Y+2, r1 ; 0x02
+ 244: 19 82 std Y+1, r1 ; 0x01
+ 246: 05 c0 rjmp .+10 ; 0x252 <beep+0x48>
+ 248: 89 81 ldd r24, Y+1 ; 0x01
+ 24a: 9a 81 ldd r25, Y+2 ; 0x02
+ 24c: 01 96 adiw r24, 0x01 ; 1
+ 24e: 9a 83 std Y+2, r25 ; 0x02
+ 250: 89 83 std Y+1, r24 ; 0x01
+ 252: 89 81 ldd r24, Y+1 ; 0x01
+ 254: 9a 81 ldd r25, Y+2 ; 0x02
+ 256: 8b 35 cpi r24, 0x5B ; 91
+ 258: 91 05 cpc r25, r1
+ 25a: b1 f7 brne .-20 ; 0x248 <beep+0x3e>
+ 25c: 21 50 subi r18, 0x01 ; 1
+ 25e: 30 40 sbci r19, 0x00 ; 0
+ 260: 81 f7 brne .-32 ; 0x242 <beep+0x38>
+ 262: 4f 5f subi r20, 0xFF ; 255
+ 264: 44 36 cpi r20, 0x64 ; 100
+ 266: b9 f6 brne .-82 ; 0x216 <beep+0xc>
+ 268: 0f 90 pop r0
+ 26a: 0f 90 pop r0
+ 26c: cf 91 pop r28
+ 26e: df 91 pop r29
+ 270: 08 95 ret
+
+00000272 <bleepBleepSound>:
+ 272: df 93 push r29
+ 274: cf 93 push r28
+ 276: 00 d0 rcall .+0 ; 0x278 <bleepBleepSound+0x6>
+ 278: cd b7 in r28, 0x3d ; 61
+ 27a: de b7 in r29, 0x3e ; 62
+ 27c: 41 e0 ldi r20, 0x01 ; 1
+ 27e: 50 e0 ldi r21, 0x00 ; 0
+ 280: 2a c0 rjmp .+84 ; 0x2d6 <bleepBleepSound+0x64>
+ 282: 2a 9a sbi 0x05, 2 ; 5
+ 284: 9a 01 movw r18, r20
+ 286: 1a 82 std Y+2, r1 ; 0x02
+ 288: 19 82 std Y+1, r1 ; 0x01
+ 28a: 05 c0 rjmp .+10 ; 0x296 <bleepBleepSound+0x24>
+ 28c: 89 81 ldd r24, Y+1 ; 0x01
+ 28e: 9a 81 ldd r25, Y+2 ; 0x02
+ 290: 01 96 adiw r24, 0x01 ; 1
+ 292: 9a 83 std Y+2, r25 ; 0x02
+ 294: 89 83 std Y+1, r24 ; 0x01
+ 296: 89 81 ldd r24, Y+1 ; 0x01
+ 298: 9a 81 ldd r25, Y+2 ; 0x02
+ 29a: 09 97 sbiw r24, 0x09 ; 9
+ 29c: b9 f7 brne .-18 ; 0x28c <bleepBleepSound+0x1a>
+ 29e: 21 50 subi r18, 0x01 ; 1
+ 2a0: 30 40 sbci r19, 0x00 ; 0
+ 2a2: 89 f7 brne .-30 ; 0x286 <bleepBleepSound+0x14>
+ 2a4: 2a 98 cbi 0x05, 2 ; 5
+ 2a6: 9a 01 movw r18, r20
+ 2a8: 1a 82 std Y+2, r1 ; 0x02
+ 2aa: 19 82 std Y+1, r1 ; 0x01
+ 2ac: 05 c0 rjmp .+10 ; 0x2b8 <bleepBleepSound+0x46>
+ 2ae: 89 81 ldd r24, Y+1 ; 0x01
+ 2b0: 9a 81 ldd r25, Y+2 ; 0x02
+ 2b2: 01 96 adiw r24, 0x01 ; 1
+ 2b4: 9a 83 std Y+2, r25 ; 0x02
+ 2b6: 89 83 std Y+1, r24 ; 0x01
+ 2b8: 89 81 ldd r24, Y+1 ; 0x01
+ 2ba: 9a 81 ldd r25, Y+2 ; 0x02
+ 2bc: 09 97 sbiw r24, 0x09 ; 9
+ 2be: b9 f7 brne .-18 ; 0x2ae <bleepBleepSound+0x3c>
+ 2c0: 21 50 subi r18, 0x01 ; 1
+ 2c2: 30 40 sbci r19, 0x00 ; 0
+ 2c4: 89 f7 brne .-30 ; 0x2a8 <bleepBleepSound+0x36>
+ 2c6: 6f 5f subi r22, 0xFF ; 255
+ 2c8: 64 36 cpi r22, 0x64 ; 100
+ 2ca: d9 f6 brne .-74 ; 0x282 <bleepBleepSound+0x10>
+ 2cc: 46 5f subi r20, 0xF6 ; 246
+ 2ce: 5f 4f sbci r21, 0xFF ; 255
+ 2d0: 49 32 cpi r20, 0x29 ; 41
+ 2d2: 51 05 cpc r21, r1
+ 2d4: 11 f0 breq .+4 ; 0x2da <bleepBleepSound+0x68>
+ 2d6: 60 e0 ldi r22, 0x00 ; 0
+ 2d8: d4 cf rjmp .-88 ; 0x282 <bleepBleepSound+0x10>
+ 2da: 0f 90 pop r0
+ 2dc: 0f 90 pop r0
+ 2de: cf 91 pop r28
+ 2e0: df 91 pop r29
+ 2e2: 08 95 ret
+
+000002e4 <putByte>:
+ 2e4: 68 2f mov r22, r24
+ 2e6: 27 e0 ldi r18, 0x07 ; 7
+ 2e8: 30 e0 ldi r19, 0x00 ; 0
+ 2ea: 41 e0 ldi r20, 0x01 ; 1
+ 2ec: 50 e0 ldi r21, 0x00 ; 0
+ 2ee: 2c 98 cbi 0x05, 4 ; 5
+ 2f0: ca 01 movw r24, r20
+ 2f2: 02 2e mov r0, r18
+ 2f4: 02 c0 rjmp .+4 ; 0x2fa <putByte+0x16>
+ 2f6: 88 0f add r24, r24
+ 2f8: 99 1f adc r25, r25
+ 2fa: 0a 94 dec r0
+ 2fc: e2 f7 brpl .-8 ; 0x2f6 <putByte+0x12>
+ 2fe: 86 23 and r24, r22
+ 300: 11 f0 breq .+4 ; 0x306 <putByte+0x22>
+ 302: 2b 9a sbi 0x05, 3 ; 5
+ 304: 01 c0 rjmp .+2 ; 0x308 <putByte+0x24>
+ 306: 2b 98 cbi 0x05, 3 ; 5
+ 308: 2c 9a sbi 0x05, 4 ; 5
+ 30a: 21 50 subi r18, 0x01 ; 1
+ 30c: 30 40 sbci r19, 0x00 ; 0
+ 30e: 8f ef ldi r24, 0xFF ; 255
+ 310: 2f 3f cpi r18, 0xFF ; 255
+ 312: 38 07 cpc r19, r24
+ 314: 61 f7 brne .-40 ; 0x2ee <putByte+0xa>
+ 316: 08 95 ret
+
+00000318 <maxOne>:
+ 318: 0f 93 push r16
+ 31a: 1f 93 push r17
+ 31c: cf 93 push r28
+ 31e: df 93 push r29
+ 320: 16 2f mov r17, r22
+ 322: 04 2f mov r16, r20
+ 324: 2d 98 cbi 0x05, 5 ; 5
+ 326: 21 e0 ldi r18, 0x01 ; 1
+ 328: 30 e0 ldi r19, 0x00 ; 0
+ 32a: c8 2f mov r28, r24
+ 32c: d0 e0 ldi r29, 0x00 ; 0
+ 32e: 08 c0 rjmp .+16 ; 0x340 <maxOne+0x28>
+ 330: 80 e0 ldi r24, 0x00 ; 0
+ 332: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 336: 80 e0 ldi r24, 0x00 ; 0
+ 338: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 33c: 20 e0 ldi r18, 0x00 ; 0
+ 33e: 30 e0 ldi r19, 0x00 ; 0
+ 340: c2 17 cp r28, r18
+ 342: d3 07 cpc r29, r19
+ 344: ac f3 brlt .-22 ; 0x330 <maxOne+0x18>
+ 346: 81 2f mov r24, r17
+ 348: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 34c: 80 2f mov r24, r16
+ 34e: 04 c0 rjmp .+8 ; 0x358 <maxOne+0x40>
+ 350: 80 e0 ldi r24, 0x00 ; 0
+ 352: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 356: 80 e0 ldi r24, 0x00 ; 0
+ 358: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 35c: 21 97 sbiw r28, 0x01 ; 1
+ 35e: 1c 16 cp r1, r28
+ 360: 1d 06 cpc r1, r29
+ 362: b4 f3 brlt .-20 ; 0x350 <maxOne+0x38>
+ 364: 2d 98 cbi 0x05, 5 ; 5
+ 366: 2d 9a sbi 0x05, 5 ; 5
+ 368: df 91 pop r29
+ 36a: cf 91 pop r28
+ 36c: 1f 91 pop r17
+ 36e: 0f 91 pop r16
+ 370: 08 95 ret
+
+00000372 <moveLine>:
+ 372: 48 2f mov r20, r24
+ 374: 50 e0 ldi r21, 0x00 ; 0
+ 376: 26 2f mov r18, r22
+ 378: 30 e0 ldi r19, 0x00 ; 0
+ 37a: 65 30 cpi r22, 0x05 ; 5
+ 37c: 58 f4 brcc .+22 ; 0x394 <moveLine+0x22>
+ 37e: 84 e0 ldi r24, 0x04 ; 4
+ 380: 90 e0 ldi r25, 0x00 ; 0
+ 382: 82 1b sub r24, r18
+ 384: 93 0b sbc r25, r19
+ 386: 02 c0 rjmp .+4 ; 0x38c <moveLine+0x1a>
+ 388: 44 0f add r20, r20
+ 38a: 55 1f adc r21, r21
+ 38c: 8a 95 dec r24
+ 38e: e2 f7 brpl .-8 ; 0x388 <moveLine+0x16>
+ 390: 84 2f mov r24, r20
+ 392: 08 95 ret
+ 394: 24 50 subi r18, 0x04 ; 4
+ 396: 30 40 sbci r19, 0x00 ; 0
+ 398: 02 c0 rjmp .+4 ; 0x39e <moveLine+0x2c>
+ 39a: 55 95 asr r21
+ 39c: 47 95 ror r20
+ 39e: 2a 95 dec r18
+ 3a0: e2 f7 brpl .-8 ; 0x39a <moveLine+0x28>
+ 3a2: 84 2f mov r24, r20
+ 3a4: 08 95 ret
+
+000003a6 <redrawScreen>:
+ 3a6: 0f 93 push r16
+ 3a8: 1f 93 push r17
+ 3aa: cf 93 push r28
+ 3ac: df 93 push r29
+ 3ae: c0 e0 ldi r28, 0x00 ; 0
+ 3b0: d0 e0 ldi r29, 0x00 ; 0
+ 3b2: 04 e0 ldi r16, 0x04 ; 4
+ 3b4: 10 e0 ldi r17, 0x00 ; 0
+ 3b6: 80 91 8c 01 lds r24, 0x018C
+ 3ba: 28 2f mov r18, r24
+ 3bc: 30 e0 ldi r19, 0x00 ; 0
+ 3be: c2 17 cp r28, r18
+ 3c0: d3 07 cpc r29, r19
+ 3c2: ec f0 brlt .+58 ; 0x3fe <redrawScreen+0x58>
+ 3c4: c9 01 movw r24, r18
+ 3c6: 03 96 adiw r24, 0x03 ; 3
+ 3c8: 8c 17 cp r24, r28
+ 3ca: 9d 07 cpc r25, r29
+ 3cc: c4 f0 brlt .+48 ; 0x3fe <redrawScreen+0x58>
+ 3ce: ce 01 movw r24, r28
+ 3d0: 82 1b sub r24, r18
+ 3d2: 93 0b sbc r25, r19
+ 3d4: e0 91 84 01 lds r30, 0x0184
+ 3d8: f0 e0 ldi r31, 0x00 ; 0
+ 3da: 20 91 8b 01 lds r18, 0x018B
+ 3de: ee 0f add r30, r30
+ 3e0: ff 1f adc r31, r31
+ 3e2: ee 0f add r30, r30
+ 3e4: ff 1f adc r31, r31
+ 3e6: e2 0f add r30, r18
+ 3e8: f1 1d adc r31, r1
+ 3ea: ee 0f add r30, r30
+ 3ec: ff 1f adc r31, r31
+ 3ee: ee 0f add r30, r30
+ 3f0: ff 1f adc r31, r31
+ 3f2: e8 0f add r30, r24
+ 3f4: f9 1f adc r31, r25
+ 3f6: ec 5c subi r30, 0xCC ; 204
+ 3f8: fe 4f sbci r31, 0xFE ; 254
+ 3fa: e0 81 ld r30, Z
+ 3fc: 01 c0 rjmp .+2 ; 0x400 <redrawScreen+0x5a>
+ 3fe: e0 e0 ldi r30, 0x00 ; 0
+ 400: 80 91 85 01 lds r24, 0x0185
+ 404: 4e 2f mov r20, r30
+ 406: 50 e0 ldi r21, 0x00 ; 0
+ 408: 28 2f mov r18, r24
+ 40a: 30 e0 ldi r19, 0x00 ; 0
+ 40c: 85 30 cpi r24, 0x05 ; 5
+ 40e: 48 f4 brcc .+18 ; 0x422 <redrawScreen+0x7c>
+ 410: c8 01 movw r24, r16
+ 412: 82 1b sub r24, r18
+ 414: 93 0b sbc r25, r19
+ 416: 02 c0 rjmp .+4 ; 0x41c <redrawScreen+0x76>
+ 418: 44 0f add r20, r20
+ 41a: 55 1f adc r21, r21
+ 41c: 8a 95 dec r24
+ 41e: e2 f7 brpl .-8 ; 0x418 <redrawScreen+0x72>
+ 420: 07 c0 rjmp .+14 ; 0x430 <redrawScreen+0x8a>
+ 422: 24 50 subi r18, 0x04 ; 4
+ 424: 30 40 sbci r19, 0x00 ; 0
+ 426: 02 c0 rjmp .+4 ; 0x42c <redrawScreen+0x86>
+ 428: 55 95 asr r21
+ 42a: 47 95 ror r20
+ 42c: 2a 95 dec r18
+ 42e: e2 f7 brpl .-8 ; 0x428 <redrawScreen+0x82>
+ 430: ce 01 movw r24, r28
+ 432: 8f 5f subi r24, 0xFF ; 255
+ 434: 68 2f mov r22, r24
+ 436: fe 01 movw r30, r28
+ 438: ee 56 subi r30, 0x6E ; 110
+ 43a: fe 4f sbci r31, 0xFE ; 254
+ 43c: 80 81 ld r24, Z
+ 43e: 48 2b or r20, r24
+ 440: 81 e0 ldi r24, 0x01 ; 1
+ 442: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 446: 21 96 adiw r28, 0x01 ; 1
+ 448: c8 30 cpi r28, 0x08 ; 8
+ 44a: d1 05 cpc r29, r1
+ 44c: 09 f0 breq .+2 ; 0x450 <redrawScreen+0xaa>
+ 44e: b3 cf rjmp .-154 ; 0x3b6 <redrawScreen+0x10>
+ 450: df 91 pop r29
+ 452: cf 91 pop r28
+ 454: 1f 91 pop r17
+ 456: 0f 91 pop r16
+ 458: 08 95 ret
+
+0000045a <checkDown>:
+ 45a: 1f 93 push r17
+ 45c: cf 93 push r28
+ 45e: df 93 push r29
+ 460: 10 91 85 01 lds r17, 0x0185
+ 464: 81 2f mov r24, r17
+ 466: 90 e0 ldi r25, 0x00 ; 0
+ 468: 44 e0 ldi r20, 0x04 ; 4
+ 46a: 50 e0 ldi r21, 0x00 ; 0
+ 46c: 48 1b sub r20, r24
+ 46e: 59 0b sbc r21, r25
+ 470: ec 01 movw r28, r24
+ 472: 24 97 sbiw r28, 0x04 ; 4
+ 474: 80 91 8c 01 lds r24, 0x018C
+ 478: 30 91 8b 01 lds r19, 0x018B
+ 47c: 20 91 84 01 lds r18, 0x0184
+ 480: e2 2f mov r30, r18
+ 482: f0 e0 ldi r31, 0x00 ; 0
+ 484: ee 0f add r30, r30
+ 486: ff 1f adc r31, r31
+ 488: ee 0f add r30, r30
+ 48a: ff 1f adc r31, r31
+ 48c: e3 0f add r30, r19
+ 48e: f1 1d adc r31, r1
+ 490: ee 0f add r30, r30
+ 492: ff 1f adc r31, r31
+ 494: ee 0f add r30, r30
+ 496: ff 1f adc r31, r31
+ 498: ec 5c subi r30, 0xCC ; 204
+ 49a: fe 4f sbci r31, 0xFE ; 254
+ 49c: 90 e0 ldi r25, 0x00 ; 0
+ 49e: dc 01 movw r26, r24
+ 4a0: ad 56 subi r26, 0x6D ; 109
+ 4a2: be 4f sbci r27, 0xFE ; 254
+ 4a4: bc 01 movw r22, r24
+ 4a6: 69 56 subi r22, 0x69 ; 105
+ 4a8: 7e 4f sbci r23, 0xFE ; 254
+ 4aa: 80 81 ld r24, Z
+ 4ac: 28 2f mov r18, r24
+ 4ae: 30 e0 ldi r19, 0x00 ; 0
+ 4b0: 15 30 cpi r17, 0x05 ; 5
+ 4b2: 38 f4 brcc .+14 ; 0x4c2 <checkDown+0x68>
+ 4b4: 04 2e mov r0, r20
+ 4b6: 02 c0 rjmp .+4 ; 0x4bc <checkDown+0x62>
+ 4b8: 22 0f add r18, r18
+ 4ba: 33 1f adc r19, r19
+ 4bc: 0a 94 dec r0
+ 4be: e2 f7 brpl .-8 ; 0x4b8 <checkDown+0x5e>
+ 4c0: 06 c0 rjmp .+12 ; 0x4ce <checkDown+0x74>
+ 4c2: 0c 2e mov r0, r28
+ 4c4: 02 c0 rjmp .+4 ; 0x4ca <checkDown+0x70>
+ 4c6: 35 95 asr r19
+ 4c8: 27 95 ror r18
+ 4ca: 0a 94 dec r0
+ 4cc: e2 f7 brpl .-8 ; 0x4c6 <checkDown+0x6c>
+ 4ce: 8c 91 ld r24, X
+ 4d0: 28 23 and r18, r24
+ 4d2: 11 f0 breq .+4 ; 0x4d8 <checkDown+0x7e>
+ 4d4: 81 e0 ldi r24, 0x01 ; 1
+ 4d6: 06 c0 rjmp .+12 ; 0x4e4 <checkDown+0x8a>
+ 4d8: 31 96 adiw r30, 0x01 ; 1
+ 4da: 11 96 adiw r26, 0x01 ; 1
+ 4dc: a6 17 cp r26, r22
+ 4de: b7 07 cpc r27, r23
+ 4e0: 21 f7 brne .-56 ; 0x4aa <checkDown+0x50>
+ 4e2: 80 e0 ldi r24, 0x00 ; 0
+ 4e4: df 91 pop r29
+ 4e6: cf 91 pop r28
+ 4e8: 1f 91 pop r17
+ 4ea: 08 95 ret
+
+000004ec <checkStart>:
+ 4ec: 1f 93 push r17
+ 4ee: cf 93 push r28
+ 4f0: df 93 push r29
+ 4f2: 10 91 85 01 lds r17, 0x0185
+ 4f6: 81 2f mov r24, r17
+ 4f8: 90 e0 ldi r25, 0x00 ; 0
+ 4fa: 44 e0 ldi r20, 0x04 ; 4
+ 4fc: 50 e0 ldi r21, 0x00 ; 0
+ 4fe: 48 1b sub r20, r24
+ 500: 59 0b sbc r21, r25
+ 502: ec 01 movw r28, r24
+ 504: 24 97 sbiw r28, 0x04 ; 4
+ 506: 80 91 8c 01 lds r24, 0x018C
+ 50a: 30 91 8b 01 lds r19, 0x018B
+ 50e: 20 91 84 01 lds r18, 0x0184
+ 512: e2 2f mov r30, r18
+ 514: f0 e0 ldi r31, 0x00 ; 0
+ 516: ee 0f add r30, r30
+ 518: ff 1f adc r31, r31
+ 51a: ee 0f add r30, r30
+ 51c: ff 1f adc r31, r31
+ 51e: e3 0f add r30, r19
+ 520: f1 1d adc r31, r1
+ 522: ee 0f add r30, r30
+ 524: ff 1f adc r31, r31
+ 526: ee 0f add r30, r30
+ 528: ff 1f adc r31, r31
+ 52a: ec 5c subi r30, 0xCC ; 204
+ 52c: fe 4f sbci r31, 0xFE ; 254
+ 52e: 90 e0 ldi r25, 0x00 ; 0
+ 530: dc 01 movw r26, r24
+ 532: ae 56 subi r26, 0x6E ; 110
+ 534: be 4f sbci r27, 0xFE ; 254
+ 536: bc 01 movw r22, r24
+ 538: 6a 56 subi r22, 0x6A ; 106
+ 53a: 7e 4f sbci r23, 0xFE ; 254
+ 53c: 80 81 ld r24, Z
+ 53e: 28 2f mov r18, r24
+ 540: 30 e0 ldi r19, 0x00 ; 0
+ 542: 15 30 cpi r17, 0x05 ; 5
+ 544: 38 f4 brcc .+14 ; 0x554 <__stack+0x55>
+ 546: 04 2e mov r0, r20
+ 548: 02 c0 rjmp .+4 ; 0x54e <__stack+0x4f>
+ 54a: 22 0f add r18, r18
+ 54c: 33 1f adc r19, r19
+ 54e: 0a 94 dec r0
+ 550: e2 f7 brpl .-8 ; 0x54a <__stack+0x4b>
+ 552: 06 c0 rjmp .+12 ; 0x560 <__stack+0x61>
+ 554: 0c 2e mov r0, r28
+ 556: 02 c0 rjmp .+4 ; 0x55c <__stack+0x5d>
+ 558: 35 95 asr r19
+ 55a: 27 95 ror r18
+ 55c: 0a 94 dec r0
+ 55e: e2 f7 brpl .-8 ; 0x558 <__stack+0x59>
+ 560: 8c 91 ld r24, X
+ 562: 28 23 and r18, r24
+ 564: 11 f0 breq .+4 ; 0x56a <__stack+0x6b>
+ 566: 81 e0 ldi r24, 0x01 ; 1
+ 568: 06 c0 rjmp .+12 ; 0x576 <__stack+0x77>
+ 56a: 31 96 adiw r30, 0x01 ; 1
+ 56c: 11 96 adiw r26, 0x01 ; 1
+ 56e: a6 17 cp r26, r22
+ 570: b7 07 cpc r27, r23
+ 572: 21 f7 brne .-56 ; 0x53c <__stack+0x3d>
+ 574: 80 e0 ldi r24, 0x00 ; 0
+ 576: df 91 pop r29
+ 578: cf 91 pop r28
+ 57a: 1f 91 pop r17
+ 57c: 08 95 ret
+
+0000057e <checkLeft>:
+ 57e: bf 92 push r11
+ 580: cf 92 push r12
+ 582: df 92 push r13
+ 584: ef 92 push r14
+ 586: ff 92 push r15
+ 588: 0f 93 push r16
+ 58a: 1f 93 push r17
+ 58c: cf 93 push r28
+ 58e: df 93 push r29
+ 590: 50 91 85 01 lds r21, 0x0185
+ 594: 85 2f mov r24, r21
+ 596: 90 e0 ldi r25, 0x00 ; 0
+ 598: 24 e0 ldi r18, 0x04 ; 4
+ 59a: 30 e0 ldi r19, 0x00 ; 0
+ 59c: 69 01 movw r12, r18
+ 59e: c8 1a sub r12, r24
+ 5a0: d9 0a sbc r13, r25
+ 5a2: 0c ef ldi r16, 0xFC ; 252
+ 5a4: e0 2e mov r14, r16
+ 5a6: 0f ef ldi r16, 0xFF ; 255
+ 5a8: f0 2e mov r15, r16
+ 5aa: e8 0e add r14, r24
+ 5ac: f9 1e adc r15, r25
+ 5ae: b5 2e mov r11, r21
+ 5b0: ba 94 dec r11
+ 5b2: 8b 2d mov r24, r11
+ 5b4: 90 e0 ldi r25, 0x00 ; 0
+ 5b6: 89 01 movw r16, r18
+ 5b8: 08 1b sub r16, r24
+ 5ba: 19 0b sbc r17, r25
+ 5bc: ec 01 movw r28, r24
+ 5be: 24 97 sbiw r28, 0x04 ; 4
+ 5c0: 80 91 8c 01 lds r24, 0x018C
+ 5c4: 30 91 8b 01 lds r19, 0x018B
+ 5c8: 20 91 84 01 lds r18, 0x0184
+ 5cc: e2 2f mov r30, r18
+ 5ce: f0 e0 ldi r31, 0x00 ; 0
+ 5d0: ee 0f add r30, r30
+ 5d2: ff 1f adc r31, r31
+ 5d4: ee 0f add r30, r30
+ 5d6: ff 1f adc r31, r31
+ 5d8: e3 0f add r30, r19
+ 5da: f1 1d adc r31, r1
+ 5dc: ee 0f add r30, r30
+ 5de: ff 1f adc r31, r31
+ 5e0: ee 0f add r30, r30
+ 5e2: ff 1f adc r31, r31
+ 5e4: ec 5c subi r30, 0xCC ; 204
+ 5e6: fe 4f sbci r31, 0xFE ; 254
+ 5e8: 90 e0 ldi r25, 0x00 ; 0
+ 5ea: dc 01 movw r26, r24
+ 5ec: ae 56 subi r26, 0x6E ; 110
+ 5ee: be 4f sbci r27, 0xFE ; 254
+ 5f0: bc 01 movw r22, r24
+ 5f2: 6a 56 subi r22, 0x6A ; 106
+ 5f4: 7e 4f sbci r23, 0xFE ; 254
+ 5f6: 40 81 ld r20, Z
+ 5f8: 24 2f mov r18, r20
+ 5fa: 30 e0 ldi r19, 0x00 ; 0
+ 5fc: 55 30 cpi r21, 0x05 ; 5
+ 5fe: 38 f4 brcc .+14 ; 0x60e <checkLeft+0x90>
+ 600: 0c 2c mov r0, r12
+ 602: 02 c0 rjmp .+4 ; 0x608 <checkLeft+0x8a>
+ 604: 22 0f add r18, r18
+ 606: 33 1f adc r19, r19
+ 608: 0a 94 dec r0
+ 60a: e2 f7 brpl .-8 ; 0x604 <checkLeft+0x86>
+ 60c: 06 c0 rjmp .+12 ; 0x61a <checkLeft+0x9c>
+ 60e: 0e 2c mov r0, r14
+ 610: 02 c0 rjmp .+4 ; 0x616 <checkLeft+0x98>
+ 612: 35 95 asr r19
+ 614: 27 95 ror r18
+ 616: 0a 94 dec r0
+ 618: e2 f7 brpl .-8 ; 0x612 <checkLeft+0x94>
+ 61a: 27 fd sbrc r18, 7
+ 61c: 1c c0 rjmp .+56 ; 0x656 <checkLeft+0xd8>
+ 61e: 24 2f mov r18, r20
+ 620: 30 e0 ldi r19, 0x00 ; 0
+ 622: 84 e0 ldi r24, 0x04 ; 4
+ 624: 8b 15 cp r24, r11
+ 626: 38 f0 brcs .+14 ; 0x636 <checkLeft+0xb8>
+ 628: 00 2e mov r0, r16
+ 62a: 02 c0 rjmp .+4 ; 0x630 <checkLeft+0xb2>
+ 62c: 22 0f add r18, r18
+ 62e: 33 1f adc r19, r19
+ 630: 0a 94 dec r0
+ 632: e2 f7 brpl .-8 ; 0x62c <checkLeft+0xae>
+ 634: 06 c0 rjmp .+12 ; 0x642 <checkLeft+0xc4>
+ 636: 0c 2e mov r0, r28
+ 638: 02 c0 rjmp .+4 ; 0x63e <checkLeft+0xc0>
+ 63a: 35 95 asr r19
+ 63c: 27 95 ror r18
+ 63e: 0a 94 dec r0
+ 640: e2 f7 brpl .-8 ; 0x63a <checkLeft+0xbc>
+ 642: 8c 91 ld r24, X
+ 644: 28 23 and r18, r24
+ 646: 39 f4 brne .+14 ; 0x656 <checkLeft+0xd8>
+ 648: 31 96 adiw r30, 0x01 ; 1
+ 64a: 11 96 adiw r26, 0x01 ; 1
+ 64c: a6 17 cp r26, r22
+ 64e: b7 07 cpc r27, r23
+ 650: 91 f6 brne .-92 ; 0x5f6 <checkLeft+0x78>
+ 652: 80 e0 ldi r24, 0x00 ; 0
+ 654: 01 c0 rjmp .+2 ; 0x658 <checkLeft+0xda>
+ 656: 81 e0 ldi r24, 0x01 ; 1
+ 658: df 91 pop r29
+ 65a: cf 91 pop r28
+ 65c: 1f 91 pop r17
+ 65e: 0f 91 pop r16
+ 660: ff 90 pop r15
+ 662: ef 90 pop r14
+ 664: df 90 pop r13
+ 666: cf 90 pop r12
+ 668: bf 90 pop r11
+ 66a: 08 95 ret
+
+0000066c <checkRight>:
+ 66c: bf 92 push r11
+ 66e: cf 92 push r12
+ 670: df 92 push r13
+ 672: ef 92 push r14
+ 674: ff 92 push r15
+ 676: 0f 93 push r16
+ 678: 1f 93 push r17
+ 67a: cf 93 push r28
+ 67c: df 93 push r29
+ 67e: 50 91 85 01 lds r21, 0x0185
+ 682: 85 2f mov r24, r21
+ 684: 90 e0 ldi r25, 0x00 ; 0
+ 686: 24 e0 ldi r18, 0x04 ; 4
+ 688: 30 e0 ldi r19, 0x00 ; 0
+ 68a: 69 01 movw r12, r18
+ 68c: c8 1a sub r12, r24
+ 68e: d9 0a sbc r13, r25
+ 690: 4c ef ldi r20, 0xFC ; 252
+ 692: e4 2e mov r14, r20
+ 694: 4f ef ldi r20, 0xFF ; 255
+ 696: f4 2e mov r15, r20
+ 698: e8 0e add r14, r24
+ 69a: f9 1e adc r15, r25
+ 69c: b5 2e mov r11, r21
+ 69e: b3 94 inc r11
+ 6a0: 8b 2d mov r24, r11
+ 6a2: 90 e0 ldi r25, 0x00 ; 0
+ 6a4: 89 01 movw r16, r18
+ 6a6: 08 1b sub r16, r24
+ 6a8: 19 0b sbc r17, r25
+ 6aa: ec 01 movw r28, r24
+ 6ac: 24 97 sbiw r28, 0x04 ; 4
+ 6ae: 80 91 8c 01 lds r24, 0x018C
+ 6b2: 30 91 8b 01 lds r19, 0x018B
+ 6b6: 20 91 84 01 lds r18, 0x0184
+ 6ba: e2 2f mov r30, r18
+ 6bc: f0 e0 ldi r31, 0x00 ; 0
+ 6be: ee 0f add r30, r30
+ 6c0: ff 1f adc r31, r31
+ 6c2: ee 0f add r30, r30
+ 6c4: ff 1f adc r31, r31
+ 6c6: e3 0f add r30, r19
+ 6c8: f1 1d adc r31, r1
+ 6ca: ee 0f add r30, r30
+ 6cc: ff 1f adc r31, r31
+ 6ce: ee 0f add r30, r30
+ 6d0: ff 1f adc r31, r31
+ 6d2: ec 5c subi r30, 0xCC ; 204
+ 6d4: fe 4f sbci r31, 0xFE ; 254
+ 6d6: 90 e0 ldi r25, 0x00 ; 0
+ 6d8: dc 01 movw r26, r24
+ 6da: ae 56 subi r26, 0x6E ; 110
+ 6dc: be 4f sbci r27, 0xFE ; 254
+ 6de: bc 01 movw r22, r24
+ 6e0: 6a 56 subi r22, 0x6A ; 106
+ 6e2: 7e 4f sbci r23, 0xFE ; 254
+ 6e4: 40 81 ld r20, Z
+ 6e6: 24 2f mov r18, r20
+ 6e8: 30 e0 ldi r19, 0x00 ; 0
+ 6ea: 55 30 cpi r21, 0x05 ; 5
+ 6ec: 38 f4 brcc .+14 ; 0x6fc <checkRight+0x90>
+ 6ee: 0c 2c mov r0, r12
+ 6f0: 02 c0 rjmp .+4 ; 0x6f6 <checkRight+0x8a>
+ 6f2: 22 0f add r18, r18
+ 6f4: 33 1f adc r19, r19
+ 6f6: 0a 94 dec r0
+ 6f8: e2 f7 brpl .-8 ; 0x6f2 <checkRight+0x86>
+ 6fa: 06 c0 rjmp .+12 ; 0x708 <checkRight+0x9c>
+ 6fc: 0e 2c mov r0, r14
+ 6fe: 02 c0 rjmp .+4 ; 0x704 <checkRight+0x98>
+ 700: 35 95 asr r19
+ 702: 27 95 ror r18
+ 704: 0a 94 dec r0
+ 706: e2 f7 brpl .-8 ; 0x700 <checkRight+0x94>
+ 708: 20 fd sbrc r18, 0
+ 70a: 1c c0 rjmp .+56 ; 0x744 <checkRight+0xd8>
+ 70c: 24 2f mov r18, r20
+ 70e: 30 e0 ldi r19, 0x00 ; 0
+ 710: 84 e0 ldi r24, 0x04 ; 4
+ 712: 8b 15 cp r24, r11
+ 714: 38 f0 brcs .+14 ; 0x724 <checkRight+0xb8>
+ 716: 00 2e mov r0, r16
+ 718: 02 c0 rjmp .+4 ; 0x71e <checkRight+0xb2>
+ 71a: 22 0f add r18, r18
+ 71c: 33 1f adc r19, r19
+ 71e: 0a 94 dec r0
+ 720: e2 f7 brpl .-8 ; 0x71a <checkRight+0xae>
+ 722: 06 c0 rjmp .+12 ; 0x730 <checkRight+0xc4>
+ 724: 0c 2e mov r0, r28
+ 726: 02 c0 rjmp .+4 ; 0x72c <checkRight+0xc0>
+ 728: 35 95 asr r19
+ 72a: 27 95 ror r18
+ 72c: 0a 94 dec r0
+ 72e: e2 f7 brpl .-8 ; 0x728 <checkRight+0xbc>
+ 730: 8c 91 ld r24, X
+ 732: 28 23 and r18, r24
+ 734: 39 f4 brne .+14 ; 0x744 <checkRight+0xd8>
+ 736: 31 96 adiw r30, 0x01 ; 1
+ 738: 11 96 adiw r26, 0x01 ; 1
+ 73a: a6 17 cp r26, r22
+ 73c: b7 07 cpc r27, r23
+ 73e: 91 f6 brne .-92 ; 0x6e4 <checkRight+0x78>
+ 740: 80 e0 ldi r24, 0x00 ; 0
+ 742: 01 c0 rjmp .+2 ; 0x746 <checkRight+0xda>
+ 744: 81 e0 ldi r24, 0x01 ; 1
+ 746: df 91 pop r29
+ 748: cf 91 pop r28
+ 74a: 1f 91 pop r17
+ 74c: 0f 91 pop r16
+ 74e: ff 90 pop r15
+ 750: ef 90 pop r14
+ 752: df 90 pop r13
+ 754: cf 90 pop r12
+ 756: bf 90 pop r11
+ 758: 08 95 ret
+
+0000075a <checkTurn>:
+ 75a: 0f 93 push r16
+ 75c: 1f 93 push r17
+ 75e: cf 93 push r28
+ 760: df 93 push r29
+ 762: 80 91 8b 01 lds r24, 0x018B
+ 766: 83 30 cpi r24, 0x03 ; 3
+ 768: 10 f0 brcs .+4 ; 0x76e <checkTurn+0x14>
+ 76a: 20 e0 ldi r18, 0x00 ; 0
+ 76c: 02 c0 rjmp .+4 ; 0x772 <checkTurn+0x18>
+ 76e: 28 2f mov r18, r24
+ 770: 2f 5f subi r18, 0xFF ; 255
+ 772: 50 91 84 01 lds r21, 0x0184
+ 776: 40 91 85 01 lds r20, 0x0185
+ 77a: 84 2f mov r24, r20
+ 77c: 90 e0 ldi r25, 0x00 ; 0
+ 77e: 64 e0 ldi r22, 0x04 ; 4
+ 780: 70 e0 ldi r23, 0x00 ; 0
+ 782: 68 1b sub r22, r24
+ 784: 79 0b sbc r23, r25
+ 786: 8c 01 movw r16, r24
+ 788: 04 50 subi r16, 0x04 ; 4
+ 78a: 10 40 sbci r17, 0x00 ; 0
+ 78c: 80 91 8c 01 lds r24, 0x018C
+ 790: e5 2f mov r30, r21
+ 792: f0 e0 ldi r31, 0x00 ; 0
+ 794: ee 0f add r30, r30
+ 796: ff 1f adc r31, r31
+ 798: ee 0f add r30, r30
+ 79a: ff 1f adc r31, r31
+ 79c: e2 0f add r30, r18
+ 79e: f1 1d adc r31, r1
+ 7a0: ee 0f add r30, r30
+ 7a2: ff 1f adc r31, r31
+ 7a4: ee 0f add r30, r30
+ 7a6: ff 1f adc r31, r31
+ 7a8: ec 5c subi r30, 0xCC ; 204
+ 7aa: fe 4f sbci r31, 0xFE ; 254
+ 7ac: 90 e0 ldi r25, 0x00 ; 0
+ 7ae: dc 01 movw r26, r24
+ 7b0: ae 56 subi r26, 0x6E ; 110
+ 7b2: be 4f sbci r27, 0xFE ; 254
+ 7b4: ec 01 movw r28, r24
+ 7b6: ca 56 subi r28, 0x6A ; 106
+ 7b8: de 4f sbci r29, 0xFE ; 254
+ 7ba: 80 81 ld r24, Z
+ 7bc: 28 2f mov r18, r24
+ 7be: 30 e0 ldi r19, 0x00 ; 0
+ 7c0: 45 30 cpi r20, 0x05 ; 5
+ 7c2: 38 f4 brcc .+14 ; 0x7d2 <checkTurn+0x78>
+ 7c4: 06 2e mov r0, r22
+ 7c6: 02 c0 rjmp .+4 ; 0x7cc <checkTurn+0x72>
+ 7c8: 22 0f add r18, r18
+ 7ca: 33 1f adc r19, r19
+ 7cc: 0a 94 dec r0
+ 7ce: e2 f7 brpl .-8 ; 0x7c8 <checkTurn+0x6e>
+ 7d0: 06 c0 rjmp .+12 ; 0x7de <checkTurn+0x84>
+ 7d2: 00 2e mov r0, r16
+ 7d4: 02 c0 rjmp .+4 ; 0x7da <checkTurn+0x80>
+ 7d6: 35 95 asr r19
+ 7d8: 27 95 ror r18
+ 7da: 0a 94 dec r0
+ 7dc: e2 f7 brpl .-8 ; 0x7d6 <checkTurn+0x7c>
+ 7de: 51 30 cpi r21, 0x01 ; 1
+ 7e0: 31 f0 breq .+12 ; 0x7ee <checkTurn+0x94>
+ 7e2: 52 30 cpi r21, 0x02 ; 2
+ 7e4: 11 f0 breq .+4 ; 0x7ea <checkTurn+0x90>
+ 7e6: 53 30 cpi r21, 0x03 ; 3
+ 7e8: 29 f4 brne .+10 ; 0x7f4 <checkTurn+0x9a>
+ 7ea: 41 30 cpi r20, 0x01 ; 1
+ 7ec: 99 f0 breq .+38 ; 0x814 <checkTurn+0xba>
+ 7ee: 48 30 cpi r20, 0x08 ; 8
+ 7f0: 39 f4 brne .+14 ; 0x800 <checkTurn+0xa6>
+ 7f2: 10 c0 rjmp .+32 ; 0x814 <checkTurn+0xba>
+ 7f4: 54 30 cpi r21, 0x04 ; 4
+ 7f6: 21 f4 brne .+8 ; 0x800 <checkTurn+0xa6>
+ 7f8: 42 30 cpi r20, 0x02 ; 2
+ 7fa: 61 f0 breq .+24 ; 0x814 <checkTurn+0xba>
+ 7fc: 47 30 cpi r20, 0x07 ; 7
+ 7fe: 51 f0 breq .+20 ; 0x814 <checkTurn+0xba>
+ 800: 8c 91 ld r24, X
+ 802: 28 23 and r18, r24
+ 804: 39 f4 brne .+14 ; 0x814 <checkTurn+0xba>
+ 806: 31 96 adiw r30, 0x01 ; 1
+ 808: 11 96 adiw r26, 0x01 ; 1
+ 80a: ac 17 cp r26, r28
+ 80c: bd 07 cpc r27, r29
+ 80e: a9 f6 brne .-86 ; 0x7ba <checkTurn+0x60>
+ 810: 80 e0 ldi r24, 0x00 ; 0
+ 812: 01 c0 rjmp .+2 ; 0x816 <checkTurn+0xbc>
+ 814: 81 e0 ldi r24, 0x01 ; 1
+ 816: df 91 pop r29
+ 818: cf 91 pop r28
+ 81a: 1f 91 pop r17
+ 81c: 0f 91 pop r16
+ 81e: 08 95 ret
+
+00000820 <checkFullLine>:
+ 820: cf 92 push r12
+ 822: df 92 push r13
+ 824: ef 92 push r14
+ 826: ff 92 push r15
+ 828: 0f 93 push r16
+ 82a: 1f 93 push r17
+ 82c: df 93 push r29
+ 82e: cf 93 push r28
+ 830: 00 d0 rcall .+0 ; 0x832 <checkFullLine+0x12>
+ 832: cd b7 in r28, 0x3d ; 61
+ 834: de b7 in r29, 0x3e ; 62
+ 836: 80 91 8c 01 lds r24, 0x018C
+ 83a: b7 e0 ldi r27, 0x07 ; 7
+ 83c: eb 2e mov r14, r27
+ 83e: e8 22 and r14, r24
+ 840: e3 94 inc r14
+ 842: 00 e0 ldi r16, 0x00 ; 0
+ 844: 10 e0 ldi r17, 0x00 ; 0
+ 846: 86 95 lsr r24
+ 848: 86 95 lsr r24
+ 84a: 86 95 lsr r24
+ 84c: c8 2e mov r12, r24
+ 84e: c3 94 inc r12
+ 850: d0 2e mov r13, r16
+ 852: 80 91 8c 01 lds r24, 0x018C
+ 856: f8 01 movw r30, r16
+ 858: e8 0f add r30, r24
+ 85a: f1 1d adc r31, r1
+ 85c: e8 30 cpi r30, 0x08 ; 8
+ 85e: f1 05 cpc r31, r1
+ 860: 0c f0 brlt .+2 ; 0x864 <checkFullLine+0x44>
+ 862: 6b c0 rjmp .+214 ; 0x93a <checkFullLine+0x11a>
+ 864: ee 56 subi r30, 0x6E ; 110
+ 866: fe 4f sbci r31, 0xFE ; 254
+ 868: 80 81 ld r24, Z
+ 86a: 8f 3f cpi r24, 0xFF ; 255
+ 86c: 09 f0 breq .+2 ; 0x870 <checkFullLine+0x50>
+ 86e: 65 c0 rjmp .+202 ; 0x93a <checkFullLine+0x11a>
+ 870: ff 24 eor r15, r15
+ 872: 8c 2d mov r24, r12
+ 874: 6e 2d mov r22, r14
+ 876: 40 e0 ldi r20, 0x00 ; 0
+ 878: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 87c: 28 ee ldi r18, 0xE8 ; 232
+ 87e: 33 e0 ldi r19, 0x03 ; 3
+ 880: 1a 82 std Y+2, r1 ; 0x02
+ 882: 19 82 std Y+1, r1 ; 0x01
+ 884: 05 c0 rjmp .+10 ; 0x890 <checkFullLine+0x70>
+ 886: 89 81 ldd r24, Y+1 ; 0x01
+ 888: 9a 81 ldd r25, Y+2 ; 0x02
+ 88a: 01 96 adiw r24, 0x01 ; 1
+ 88c: 9a 83 std Y+2, r25 ; 0x02
+ 88e: 89 83 std Y+1, r24 ; 0x01
+ 890: 89 81 ldd r24, Y+1 ; 0x01
+ 892: 9a 81 ldd r25, Y+2 ; 0x02
+ 894: 8b 35 cpi r24, 0x5B ; 91
+ 896: 91 05 cpc r25, r1
+ 898: b1 f7 brne .-20 ; 0x886 <checkFullLine+0x66>
+ 89a: 21 50 subi r18, 0x01 ; 1
+ 89c: 30 40 sbci r19, 0x00 ; 0
+ 89e: 81 f7 brne .-32 ; 0x880 <checkFullLine+0x60>
+ 8a0: 8c 2d mov r24, r12
+ 8a2: 6e 2d mov r22, r14
+ 8a4: 4f ef ldi r20, 0xFF ; 255
+ 8a6: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 8aa: 28 ee ldi r18, 0xE8 ; 232
+ 8ac: 33 e0 ldi r19, 0x03 ; 3
+ 8ae: 1a 82 std Y+2, r1 ; 0x02
+ 8b0: 19 82 std Y+1, r1 ; 0x01
+ 8b2: 05 c0 rjmp .+10 ; 0x8be <checkFullLine+0x9e>
+ 8b4: 89 81 ldd r24, Y+1 ; 0x01
+ 8b6: 9a 81 ldd r25, Y+2 ; 0x02
+ 8b8: 01 96 adiw r24, 0x01 ; 1
+ 8ba: 9a 83 std Y+2, r25 ; 0x02
+ 8bc: 89 83 std Y+1, r24 ; 0x01
+ 8be: 89 81 ldd r24, Y+1 ; 0x01
+ 8c0: 9a 81 ldd r25, Y+2 ; 0x02
+ 8c2: 8b 35 cpi r24, 0x5B ; 91
+ 8c4: 91 05 cpc r25, r1
+ 8c6: b1 f7 brne .-20 ; 0x8b4 <checkFullLine+0x94>
+ 8c8: 21 50 subi r18, 0x01 ; 1
+ 8ca: 30 40 sbci r19, 0x00 ; 0
+ 8cc: 81 f7 brne .-32 ; 0x8ae <checkFullLine+0x8e>
+ 8ce: f3 94 inc r15
+ 8d0: 83 e0 ldi r24, 0x03 ; 3
+ 8d2: f8 16 cp r15, r24
+ 8d4: 71 f6 brne .-100 ; 0x872 <checkFullLine+0x52>
+ 8d6: 90 91 8c 01 lds r25, 0x018C
+ 8da: 9d 0d add r25, r13
+ 8dc: 08 c0 rjmp .+16 ; 0x8ee <checkFullLine+0xce>
+ 8de: e9 2f mov r30, r25
+ 8e0: f0 e0 ldi r31, 0x00 ; 0
+ 8e2: ee 56 subi r30, 0x6E ; 110
+ 8e4: fe 4f sbci r31, 0xFE ; 254
+ 8e6: 82 91 ld r24, -Z
+ 8e8: 31 96 adiw r30, 0x01 ; 1
+ 8ea: 80 83 st Z, r24
+ 8ec: 91 50 subi r25, 0x01 ; 1
+ 8ee: 99 23 and r25, r25
+ 8f0: b1 f7 brne .-20 ; 0x8de <checkFullLine+0xbe>
+ 8f2: 0e 94 39 01 call 0x272 ; 0x272 <bleepBleepSound>
+ 8f6: e0 e0 ldi r30, 0x00 ; 0
+ 8f8: f1 e0 ldi r31, 0x01 ; 1
+ 8fa: 07 c0 rjmp .+14 ; 0x90a <checkFullLine+0xea>
+ 8fc: 80 91 c0 00 lds r24, 0x00C0
+ 900: 85 ff sbrs r24, 5
+ 902: fc cf rjmp .-8 ; 0x8fc <checkFullLine+0xdc>
+ 904: 90 93 c6 00 sts 0x00C6, r25
+ 908: 31 96 adiw r30, 0x01 ; 1
+ 90a: 90 81 ld r25, Z
+ 90c: 99 23 and r25, r25
+ 90e: b1 f7 brne .-20 ; 0x8fc <checkFullLine+0xdc>
+ 910: 80 91 86 01 lds r24, 0x0186
+ 914: 8f 5f subi r24, 0xFF ; 255
+ 916: 80 93 86 01 sts 0x0186, r24
+ 91a: 81 50 subi r24, 0x01 ; 1
+ 91c: 0e 94 9c 00 call 0x138 ; 0x138 <transmit_4digit_USART0>
+ 920: e8 e0 ldi r30, 0x08 ; 8
+ 922: f1 e0 ldi r31, 0x01 ; 1
+ 924: 07 c0 rjmp .+14 ; 0x934 <checkFullLine+0x114>
+ 926: 80 91 c0 00 lds r24, 0x00C0
+ 92a: 85 ff sbrs r24, 5
+ 92c: fc cf rjmp .-8 ; 0x926 <checkFullLine+0x106>
+ 92e: 90 93 c6 00 sts 0x00C6, r25
+ 932: 31 96 adiw r30, 0x01 ; 1
+ 934: 90 81 ld r25, Z
+ 936: 99 23 and r25, r25
+ 938: b1 f7 brne .-20 ; 0x926 <checkFullLine+0x106>
+ 93a: 0f 5f subi r16, 0xFF ; 255
+ 93c: 1f 4f sbci r17, 0xFF ; 255
+ 93e: e3 94 inc r14
+ 940: 04 30 cpi r16, 0x04 ; 4
+ 942: 11 05 cpc r17, r1
+ 944: 09 f0 breq .+2 ; 0x948 <checkFullLine+0x128>
+ 946: 84 cf rjmp .-248 ; 0x850 <checkFullLine+0x30>
+ 948: 0f 90 pop r0
+ 94a: 0f 90 pop r0
+ 94c: cf 91 pop r28
+ 94e: df 91 pop r29
+ 950: 1f 91 pop r17
+ 952: 0f 91 pop r16
+ 954: ff 90 pop r15
+ 956: ef 90 pop r14
+ 958: df 90 pop r13
+ 95a: cf 90 pop r12
+ 95c: 08 95 ret
+
+0000095e <gameOver>:
+ 95e: af 92 push r10
+ 960: bf 92 push r11
+ 962: cf 92 push r12
+ 964: df 92 push r13
+ 966: ff 92 push r15
+ 968: 0f 93 push r16
+ 96a: 1f 93 push r17
+ 96c: df 93 push r29
+ 96e: cf 93 push r28
+ 970: 00 d0 rcall .+0 ; 0x972 <gameOver+0x14>
+ 972: 00 d0 rcall .+0 ; 0x974 <gameOver+0x16>
+ 974: 0f 92 push r0
+ 976: cd b7 in r28, 0x3d ; 61
+ 978: de b7 in r29, 0x3e ; 62
+ 97a: de 01 movw r26, r28
+ 97c: 13 96 adiw r26, 0x03 ; 3
+ 97e: e7 e8 ldi r30, 0x87 ; 135
+ 980: f1 e0 ldi r31, 0x01 ; 1
+ 982: 83 e0 ldi r24, 0x03 ; 3
+ 984: 01 90 ld r0, Z+
+ 986: 0d 92 st X+, r0
+ 988: 81 50 subi r24, 0x01 ; 1
+ 98a: e1 f7 brne .-8 ; 0x984 <gameOver+0x26>
+ 98c: 10 e0 ldi r17, 0x00 ; 0
+ 98e: 1f 5f subi r17, 0xFF ; 255
+ 990: 81 e0 ldi r24, 0x01 ; 1
+ 992: 61 2f mov r22, r17
+ 994: 4f ef ldi r20, 0xFF ; 255
+ 996: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 99a: 24 ef ldi r18, 0xF4 ; 244
+ 99c: 31 e0 ldi r19, 0x01 ; 1
+ 99e: 1a 82 std Y+2, r1 ; 0x02
+ 9a0: 19 82 std Y+1, r1 ; 0x01
+ 9a2: 05 c0 rjmp .+10 ; 0x9ae <gameOver+0x50>
+ 9a4: 89 81 ldd r24, Y+1 ; 0x01
+ 9a6: 9a 81 ldd r25, Y+2 ; 0x02
+ 9a8: 01 96 adiw r24, 0x01 ; 1
+ 9aa: 9a 83 std Y+2, r25 ; 0x02
+ 9ac: 89 83 std Y+1, r24 ; 0x01
+ 9ae: 89 81 ldd r24, Y+1 ; 0x01
+ 9b0: 9a 81 ldd r25, Y+2 ; 0x02
+ 9b2: 8b 35 cpi r24, 0x5B ; 91
+ 9b4: 91 05 cpc r25, r1
+ 9b6: b1 f7 brne .-20 ; 0x9a4 <gameOver+0x46>
+ 9b8: 21 50 subi r18, 0x01 ; 1
+ 9ba: 30 40 sbci r19, 0x00 ; 0
+ 9bc: 81 f7 brne .-32 ; 0x99e <gameOver+0x40>
+ 9be: 18 30 cpi r17, 0x08 ; 8
+ 9c0: 31 f7 brne .-52 ; 0x98e <gameOver+0x30>
+ 9c2: 02 e9 ldi r16, 0x92 ; 146
+ 9c4: 11 e0 ldi r17, 0x01 ; 1
+ 9c6: ff 24 eor r15, r15
+ 9c8: f3 94 inc r15
+ 9ca: 81 e0 ldi r24, 0x01 ; 1
+ 9cc: 6f 2d mov r22, r15
+ 9ce: 40 e0 ldi r20, 0x00 ; 0
+ 9d0: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 9d4: f8 01 movw r30, r16
+ 9d6: 10 82 st Z, r1
+ 9d8: 24 ef ldi r18, 0xF4 ; 244
+ 9da: 31 e0 ldi r19, 0x01 ; 1
+ 9dc: 1a 82 std Y+2, r1 ; 0x02
+ 9de: 19 82 std Y+1, r1 ; 0x01
+ 9e0: 05 c0 rjmp .+10 ; 0x9ec <gameOver+0x8e>
+ 9e2: 89 81 ldd r24, Y+1 ; 0x01
+ 9e4: 9a 81 ldd r25, Y+2 ; 0x02
+ 9e6: 01 96 adiw r24, 0x01 ; 1
+ 9e8: 9a 83 std Y+2, r25 ; 0x02
+ 9ea: 89 83 std Y+1, r24 ; 0x01
+ 9ec: 89 81 ldd r24, Y+1 ; 0x01
+ 9ee: 9a 81 ldd r25, Y+2 ; 0x02
+ 9f0: 8b 35 cpi r24, 0x5B ; 91
+ 9f2: 91 05 cpc r25, r1
+ 9f4: b1 f7 brne .-20 ; 0x9e2 <gameOver+0x84>
+ 9f6: 21 50 subi r18, 0x01 ; 1
+ 9f8: 30 40 sbci r19, 0x00 ; 0
+ 9fa: 81 f7 brne .-32 ; 0x9dc <gameOver+0x7e>
+ 9fc: 0f 5f subi r16, 0xFF ; 255
+ 9fe: 1f 4f sbci r17, 0xFF ; 255
+ a00: f8 e0 ldi r31, 0x08 ; 8
+ a02: ff 16 cp r15, r31
+ a04: 09 f7 brne .-62 ; 0x9c8 <gameOver+0x6a>
+ a06: ff 24 eor r15, r15
+ a08: 13 e0 ldi r17, 0x03 ; 3
+ a0a: a1 2e mov r10, r17
+ a0c: b1 2c mov r11, r1
+ a0e: ac 0e add r10, r28
+ a10: bd 1e adc r11, r29
+ a12: 32 c0 rjmp .+100 ; 0xa78 <gameOver+0x11a>
+ a14: 00 e0 ldi r16, 0x00 ; 0
+ a16: 10 e0 ldi r17, 0x00 ; 0
+ a18: cf 2c mov r12, r15
+ a1a: dd 24 eor r13, r13
+ a1c: 20 2f mov r18, r16
+ a1e: 2f 5f subi r18, 0xFF ; 255
+ a20: c8 01 movw r24, r16
+ a22: 8c 0d add r24, r12
+ a24: 9d 1d adc r25, r13
+ a26: 63 e0 ldi r22, 0x03 ; 3
+ a28: 70 e0 ldi r23, 0x00 ; 0
+ a2a: 0e 94 d2 06 call 0xda4 ; 0xda4 <__divmodhi4>
+ a2e: f5 01 movw r30, r10
+ a30: e8 0f add r30, r24
+ a32: f9 1f adc r31, r25
+ a34: 81 e0 ldi r24, 0x01 ; 1
+ a36: 62 2f mov r22, r18
+ a38: 40 81 ld r20, Z
+ a3a: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ a3e: 0f 5f subi r16, 0xFF ; 255
+ a40: 1f 4f sbci r17, 0xFF ; 255
+ a42: 08 30 cpi r16, 0x08 ; 8
+ a44: 11 05 cpc r17, r1
+ a46: 51 f7 brne .-44 ; 0xa1c <gameOver+0xbe>
+ a48: 81 e0 ldi r24, 0x01 ; 1
+ a4a: 8f 15 cp r24, r15
+ a4c: 10 f4 brcc .+4 ; 0xa52 <gameOver+0xf4>
+ a4e: ff 24 eor r15, r15
+ a50: 01 c0 rjmp .+2 ; 0xa54 <gameOver+0xf6>
+ a52: f3 94 inc r15
+ a54: 28 ee ldi r18, 0xE8 ; 232
+ a56: 33 e0 ldi r19, 0x03 ; 3
+ a58: 1a 82 std Y+2, r1 ; 0x02
+ a5a: 19 82 std Y+1, r1 ; 0x01
+ a5c: 05 c0 rjmp .+10 ; 0xa68 <gameOver+0x10a>
+ a5e: 89 81 ldd r24, Y+1 ; 0x01
+ a60: 9a 81 ldd r25, Y+2 ; 0x02
+ a62: 01 96 adiw r24, 0x01 ; 1
+ a64: 9a 83 std Y+2, r25 ; 0x02
+ a66: 89 83 std Y+1, r24 ; 0x01
+ a68: 89 81 ldd r24, Y+1 ; 0x01
+ a6a: 9a 81 ldd r25, Y+2 ; 0x02
+ a6c: 8b 35 cpi r24, 0x5B ; 91
+ a6e: 91 05 cpc r25, r1
+ a70: b1 f7 brne .-20 ; 0xa5e <gameOver+0x100>
+ a72: 21 50 subi r18, 0x01 ; 1
+ a74: 30 40 sbci r19, 0x00 ; 0
+ a76: 81 f7 brne .-32 ; 0xa58 <gameOver+0xfa>
+ a78: 80 91 9d 01 lds r24, 0x019D
+ a7c: 88 23 and r24, r24
+ a7e: 51 f2 breq .-108 ; 0xa14 <gameOver+0xb6>
+ a80: 81 e0 ldi r24, 0x01 ; 1
+ a82: 80 93 86 01 sts 0x0186, r24
+ a86: e2 e1 ldi r30, 0x12 ; 18
+ a88: f1 e0 ldi r31, 0x01 ; 1
+ a8a: 07 c0 rjmp .+14 ; 0xa9a <gameOver+0x13c>
+ a8c: 80 91 c0 00 lds r24, 0x00C0
+ a90: 85 ff sbrs r24, 5
+ a92: fc cf rjmp .-8 ; 0xa8c <gameOver+0x12e>
+ a94: 90 93 c6 00 sts 0x00C6, r25
+ a98: 31 96 adiw r30, 0x01 ; 1
+ a9a: 90 81 ld r25, Z
+ a9c: 99 23 and r25, r25
+ a9e: b1 f7 brne .-20 ; 0xa8c <gameOver+0x12e>
+ aa0: 80 91 8d 01 lds r24, 0x018D
+ aa4: 90 91 8e 01 lds r25, 0x018E
+ aa8: 65 e0 ldi r22, 0x05 ; 5
+ aaa: 70 e0 ldi r23, 0x00 ; 0
+ aac: 0e 94 be 06 call 0xd7c ; 0xd7c <__udivmodhi4>
+ ab0: 80 93 84 01 sts 0x0184, r24
+ ab4: 10 92 8b 01 sts 0x018B, r1
+ ab8: 0f 90 pop r0
+ aba: 0f 90 pop r0
+ abc: 0f 90 pop r0
+ abe: 0f 90 pop r0
+ ac0: 0f 90 pop r0
+ ac2: cf 91 pop r28
+ ac4: df 91 pop r29
+ ac6: 1f 91 pop r17
+ ac8: 0f 91 pop r16
+ aca: ff 90 pop r15
+ acc: df 90 pop r13
+ ace: cf 90 pop r12
+ ad0: bf 90 pop r11
+ ad2: af 90 pop r10
+ ad4: 08 95 ret
+
+00000ad6 <stopFigure>:
+ ad6: 1f 93 push r17
+ ad8: cf 93 push r28
+ ada: df 93 push r29
+ adc: 10 91 85 01 lds r17, 0x0185
+ ae0: 81 2f mov r24, r17
+ ae2: 90 e0 ldi r25, 0x00 ; 0
+ ae4: 44 e0 ldi r20, 0x04 ; 4
+ ae6: 50 e0 ldi r21, 0x00 ; 0
+ ae8: 48 1b sub r20, r24
+ aea: 59 0b sbc r21, r25
+ aec: ec 01 movw r28, r24
+ aee: 24 97 sbiw r28, 0x04 ; 4
+ af0: 80 91 8c 01 lds r24, 0x018C
+ af4: 30 91 8b 01 lds r19, 0x018B
+ af8: 20 91 84 01 lds r18, 0x0184
+ afc: e2 2f mov r30, r18
+ afe: f0 e0 ldi r31, 0x00 ; 0
+ b00: ee 0f add r30, r30
+ b02: ff 1f adc r31, r31
+ b04: ee 0f add r30, r30
+ b06: ff 1f adc r31, r31
+ b08: e3 0f add r30, r19
+ b0a: f1 1d adc r31, r1
+ b0c: ee 0f add r30, r30
+ b0e: ff 1f adc r31, r31
+ b10: ee 0f add r30, r30
+ b12: ff 1f adc r31, r31
+ b14: ec 5c subi r30, 0xCC ; 204
+ b16: fe 4f sbci r31, 0xFE ; 254
+ b18: 90 e0 ldi r25, 0x00 ; 0
+ b1a: dc 01 movw r26, r24
+ b1c: ae 56 subi r26, 0x6E ; 110
+ b1e: be 4f sbci r27, 0xFE ; 254
+ b20: bc 01 movw r22, r24
+ b22: 6a 56 subi r22, 0x6A ; 106
+ b24: 7e 4f sbci r23, 0xFE ; 254
+ b26: 80 81 ld r24, Z
+ b28: 28 2f mov r18, r24
+ b2a: 30 e0 ldi r19, 0x00 ; 0
+ b2c: 15 30 cpi r17, 0x05 ; 5
+ b2e: 38 f4 brcc .+14 ; 0xb3e <stopFigure+0x68>
+ b30: 04 2e mov r0, r20
+ b32: 02 c0 rjmp .+4 ; 0xb38 <stopFigure+0x62>
+ b34: 22 0f add r18, r18
+ b36: 33 1f adc r19, r19
+ b38: 0a 94 dec r0
+ b3a: e2 f7 brpl .-8 ; 0xb34 <stopFigure+0x5e>
+ b3c: 06 c0 rjmp .+12 ; 0xb4a <stopFigure+0x74>
+ b3e: 0c 2e mov r0, r28
+ b40: 02 c0 rjmp .+4 ; 0xb46 <stopFigure+0x70>
+ b42: 35 95 asr r19
+ b44: 27 95 ror r18
+ b46: 0a 94 dec r0
+ b48: e2 f7 brpl .-8 ; 0xb42 <stopFigure+0x6c>
+ b4a: 8c 91 ld r24, X
+ b4c: 82 2b or r24, r18
+ b4e: 8d 93 st X+, r24
+ b50: 31 96 adiw r30, 0x01 ; 1
+ b52: a6 17 cp r26, r22
+ b54: b7 07 cpc r27, r23
+ b56: 39 f7 brne .-50 ; 0xb26 <stopFigure+0x50>
+ b58: 0e 94 10 04 call 0x820 ; 0x820 <checkFullLine>
+ b5c: 10 92 8c 01 sts 0x018C, r1
+ b60: 10 92 8b 01 sts 0x018B, r1
+ b64: 84 e0 ldi r24, 0x04 ; 4
+ b66: 80 93 85 01 sts 0x0185, r24
+ b6a: 80 91 91 01 lds r24, 0x0191
+ b6e: 80 93 84 01 sts 0x0184, r24
+ b72: 0e 94 76 02 call 0x4ec ; 0x4ec <checkStart>
+ b76: 81 30 cpi r24, 0x01 ; 1
+ b78: 19 f0 breq .+6 ; 0xb80 <stopFigure+0xaa>
+ b7a: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ b7e: 02 c0 rjmp .+4 ; 0xb84 <stopFigure+0xae>
+ b80: 0e 94 af 04 call 0x95e ; 0x95e <gameOver>
+ b84: df 91 pop r29
+ b86: cf 91 pop r28
+ b88: 1f 91 pop r17
+ b8a: 08 95 ret
+
+00000b8c <main>:
+ b8c: 1f 93 push r17
+ b8e: 23 9a sbi 0x04, 3 ; 4
+ b90: 25 9a sbi 0x04, 5 ; 4
+ b92: 24 9a sbi 0x04, 4 ; 4
+ b94: 22 9a sbi 0x04, 2 ; 4
+ b96: 81 e0 ldi r24, 0x01 ; 1
+ b98: 60 91 31 01 lds r22, 0x0131
+ b9c: 47 e0 ldi r20, 0x07 ; 7
+ b9e: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ ba2: 81 e0 ldi r24, 0x01 ; 1
+ ba4: 60 91 2f 01 lds r22, 0x012F
+ ba8: 40 e0 ldi r20, 0x00 ; 0
+ baa: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bae: 81 e0 ldi r24, 0x01 ; 1
+ bb0: 60 91 32 01 lds r22, 0x0132
+ bb4: 41 e0 ldi r20, 0x01 ; 1
+ bb6: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bba: 81 e0 ldi r24, 0x01 ; 1
+ bbc: 60 91 33 01 lds r22, 0x0133
+ bc0: 40 e0 ldi r20, 0x00 ; 0
+ bc2: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bc6: 10 e0 ldi r17, 0x00 ; 0
+ bc8: 1f 5f subi r17, 0xFF ; 255
+ bca: 81 e0 ldi r24, 0x01 ; 1
+ bcc: 61 2f mov r22, r17
+ bce: 40 e0 ldi r20, 0x00 ; 0
+ bd0: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bd4: 18 30 cpi r17, 0x08 ; 8
+ bd6: c1 f7 brne .-16 ; 0xbc8 <main+0x3c>
+ bd8: 81 e0 ldi r24, 0x01 ; 1
+ bda: 60 91 30 01 lds r22, 0x0130
+ bde: 4f e0 ldi r20, 0x0F ; 15
+ be0: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ be4: 87 e6 ldi r24, 0x67 ; 103
+ be6: 90 e0 ldi r25, 0x00 ; 0
+ be8: 90 93 c5 00 sts 0x00C5, r25
+ bec: 80 93 c4 00 sts 0x00C4, r24
+ bf0: 86 e0 ldi r24, 0x06 ; 6
+ bf2: 80 93 c2 00 sts 0x00C2, r24
+ bf6: 80 91 c1 00 lds r24, 0x00C1
+ bfa: 88 61 ori r24, 0x18 ; 24
+ bfc: 80 93 c1 00 sts 0x00C1, r24
+ c00: 80 91 c1 00 lds r24, 0x00C1
+ c04: 80 68 ori r24, 0x80 ; 128
+ c06: 80 93 c1 00 sts 0x00C1, r24
+ c0a: 78 94 sei
+ c0c: 8f ef ldi r24, 0xFF ; 255
+ c0e: 80 93 9a 01 sts 0x019A, r24
+ c12: 80 91 8d 01 lds r24, 0x018D
+ c16: 83 70 andi r24, 0x03 ; 3
+ c18: 80 93 84 01 sts 0x0184, r24
+ c1c: e2 e1 ldi r30, 0x12 ; 18
+ c1e: f1 e0 ldi r31, 0x01 ; 1
+ c20: 07 c0 rjmp .+14 ; 0xc30 <main+0xa4>
+ c22: 80 91 c0 00 lds r24, 0x00C0
+ c26: 85 ff sbrs r24, 5
+ c28: fc cf rjmp .-8 ; 0xc22 <main+0x96>
+ c2a: 90 93 c6 00 sts 0x00C6, r25
+ c2e: 31 96 adiw r30, 0x01 ; 1
+ c30: 90 81 ld r25, Z
+ c32: 99 23 and r25, r25
+ c34: b1 f7 brne .-20 ; 0xc22 <main+0x96>
+ c36: 60 91 8d 01 lds r22, 0x018D
+ c3a: 70 91 8e 01 lds r23, 0x018E
+ c3e: 80 91 8f 01 lds r24, 0x018F
+ c42: 90 91 90 01 lds r25, 0x0190
+ c46: 20 e2 ldi r18, 0x20 ; 32
+ c48: 3e e4 ldi r19, 0x4E ; 78
+ c4a: 40 e0 ldi r20, 0x00 ; 0
+ c4c: 50 e0 ldi r21, 0x00 ; 0
+ c4e: 0e 94 e5 06 call 0xdca ; 0xdca <__udivmodsi4>
+ c52: 61 15 cp r22, r1
+ c54: 71 05 cpc r23, r1
+ c56: 81 05 cpc r24, r1
+ c58: 91 05 cpc r25, r1
+ c5a: 09 f5 brne .+66 ; 0xc9e <main+0x112>
+ c5c: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ c60: 0e 94 2d 02 call 0x45a ; 0x45a <checkDown>
+ c64: 81 30 cpi r24, 0x01 ; 1
+ c66: 31 f0 breq .+12 ; 0xc74 <main+0xe8>
+ c68: 80 91 8c 01 lds r24, 0x018C
+ c6c: 8f 5f subi r24, 0xFF ; 255
+ c6e: 80 93 8c 01 sts 0x018C, r24
+ c72: 15 c0 rjmp .+42 ; 0xc9e <main+0x112>
+ c74: 90 91 9b 01 lds r25, 0x019B
+ c78: 80 91 91 01 lds r24, 0x0191
+ c7c: 98 17 cp r25, r24
+ c7e: 19 f4 brne .+6 ; 0xc86 <main+0xfa>
+ c80: 9f 5f subi r25, 0xFF ; 255
+ c82: 90 93 91 01 sts 0x0191, r25
+ c86: 80 91 91 01 lds r24, 0x0191
+ c8a: 86 30 cpi r24, 0x06 ; 6
+ c8c: 10 f0 brcs .+4 ; 0xc92 <main+0x106>
+ c8e: 10 92 91 01 sts 0x0191, r1
+ c92: 80 91 91 01 lds r24, 0x0191
+ c96: 80 93 9b 01 sts 0x019B, r24
+ c9a: 0e 94 6b 05 call 0xad6 ; 0xad6 <stopFigure>
+ c9e: 20 91 8d 01 lds r18, 0x018D
+ ca2: 30 91 8e 01 lds r19, 0x018E
+ ca6: 40 91 8f 01 lds r20, 0x018F
+ caa: 50 91 90 01 lds r21, 0x0190
+ cae: 2f 5f subi r18, 0xFF ; 255
+ cb0: 3f 4f sbci r19, 0xFF ; 255
+ cb2: 4f 4f sbci r20, 0xFF ; 255
+ cb4: 5f 4f sbci r21, 0xFF ; 255
+ cb6: 20 93 8d 01 sts 0x018D, r18
+ cba: 30 93 8e 01 sts 0x018E, r19
+ cbe: 40 93 8f 01 sts 0x018F, r20
+ cc2: 50 93 90 01 sts 0x0190, r21
+ cc6: 90 91 9d 01 lds r25, 0x019D
+ cca: 80 91 9c 01 lds r24, 0x019C
+ cce: 98 17 cp r25, r24
+ cd0: 09 f4 brne .+2 ; 0xcd4 <main+0x148>
+ cd2: b1 cf rjmp .-158 ; 0xc36 <main+0xaa>
+ cd4: 80 91 9d 01 lds r24, 0x019D
+ cd8: 80 93 9c 01 sts 0x019C, r24
+ cdc: 82 2f mov r24, r18
+ cde: 83 70 andi r24, 0x03 ; 3
+ ce0: 80 93 91 01 sts 0x0191, r24
+ ce4: 80 91 9d 01 lds r24, 0x019D
+ ce8: 83 34 cpi r24, 0x43 ; 67
+ cea: 69 f4 brne .+26 ; 0xd06 <main+0x17a>
+ cec: 0e 94 36 03 call 0x66c ; 0x66c <checkRight>
+ cf0: 81 30 cpi r24, 0x01 ; 1
+ cf2: 29 f0 breq .+10 ; 0xcfe <main+0x172>
+ cf4: 80 91 85 01 lds r24, 0x0185
+ cf8: 8f 5f subi r24, 0xFF ; 255
+ cfa: 80 93 85 01 sts 0x0185, r24
+ cfe: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d02: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d06: 80 91 9d 01 lds r24, 0x019D
+ d0a: 84 34 cpi r24, 0x44 ; 68
+ d0c: 69 f4 brne .+26 ; 0xd28 <main+0x19c>
+ d0e: 0e 94 bf 02 call 0x57e ; 0x57e <checkLeft>
+ d12: 81 30 cpi r24, 0x01 ; 1
+ d14: 29 f0 breq .+10 ; 0xd20 <main+0x194>
+ d16: 80 91 85 01 lds r24, 0x0185
+ d1a: 81 50 subi r24, 0x01 ; 1
+ d1c: 80 93 85 01 sts 0x0185, r24
+ d20: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d24: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d28: 80 91 9d 01 lds r24, 0x019D
+ d2c: 82 34 cpi r24, 0x42 ; 66
+ d2e: 69 f4 brne .+26 ; 0xd4a <main+0x1be>
+ d30: 0e 94 2d 02 call 0x45a ; 0x45a <checkDown>
+ d34: 81 30 cpi r24, 0x01 ; 1
+ d36: 29 f0 breq .+10 ; 0xd42 <main+0x1b6>
+ d38: 80 91 8c 01 lds r24, 0x018C
+ d3c: 8f 5f subi r24, 0xFF ; 255
+ d3e: 80 93 8c 01 sts 0x018C, r24
+ d42: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d46: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d4a: 80 91 9d 01 lds r24, 0x019D
+ d4e: 81 34 cpi r24, 0x41 ; 65
+ d50: 91 f4 brne .+36 ; 0xd76 <main+0x1ea>
+ d52: 0e 94 ad 03 call 0x75a ; 0x75a <checkTurn>
+ d56: 81 30 cpi r24, 0x01 ; 1
+ d58: 71 f0 breq .+28 ; 0xd76 <main+0x1ea>
+ d5a: 80 91 8b 01 lds r24, 0x018B
+ d5e: 83 30 cpi r24, 0x03 ; 3
+ d60: 20 f4 brcc .+8 ; 0xd6a <main+0x1de>
+ d62: 8f 5f subi r24, 0xFF ; 255
+ d64: 80 93 8b 01 sts 0x018B, r24
+ d68: 02 c0 rjmp .+4 ; 0xd6e <main+0x1e2>
+ d6a: 10 92 8b 01 sts 0x018B, r1
+ d6e: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d72: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d76: 10 92 9d 01 sts 0x019D, r1
+ d7a: 5d cf rjmp .-326 ; 0xc36 <main+0xaa>
+
+00000d7c <__udivmodhi4>:
+ d7c: aa 1b sub r26, r26
+ d7e: bb 1b sub r27, r27
+ d80: 51 e1 ldi r21, 0x11 ; 17
+ d82: 07 c0 rjmp .+14 ; 0xd92 <__udivmodhi4_ep>
+
+00000d84 <__udivmodhi4_loop>:
+ d84: aa 1f adc r26, r26
+ d86: bb 1f adc r27, r27
+ d88: a6 17 cp r26, r22
+ d8a: b7 07 cpc r27, r23
+ d8c: 10 f0 brcs .+4 ; 0xd92 <__udivmodhi4_ep>
+ d8e: a6 1b sub r26, r22
+ d90: b7 0b sbc r27, r23
+
+00000d92 <__udivmodhi4_ep>:
+ d92: 88 1f adc r24, r24
+ d94: 99 1f adc r25, r25
+ d96: 5a 95 dec r21
+ d98: a9 f7 brne .-22 ; 0xd84 <__udivmodhi4_loop>
+ d9a: 80 95 com r24
+ d9c: 90 95 com r25
+ d9e: bc 01 movw r22, r24
+ da0: cd 01 movw r24, r26
+ da2: 08 95 ret
+
+00000da4 <__divmodhi4>:
+ da4: 97 fb bst r25, 7
+ da6: 09 2e mov r0, r25
+ da8: 07 26 eor r0, r23
+ daa: 0a d0 rcall .+20 ; 0xdc0 <__divmodhi4_neg1>
+ dac: 77 fd sbrc r23, 7
+ dae: 04 d0 rcall .+8 ; 0xdb8 <__divmodhi4_neg2>
+ db0: e5 df rcall .-54 ; 0xd7c <__udivmodhi4>
+ db2: 06 d0 rcall .+12 ; 0xdc0 <__divmodhi4_neg1>
+ db4: 00 20 and r0, r0
+ db6: 1a f4 brpl .+6 ; 0xdbe <__divmodhi4_exit>
+
+00000db8 <__divmodhi4_neg2>:
+ db8: 70 95 com r23
+ dba: 61 95 neg r22
+ dbc: 7f 4f sbci r23, 0xFF ; 255
+
+00000dbe <__divmodhi4_exit>:
+ dbe: 08 95 ret
+
+00000dc0 <__divmodhi4_neg1>:
+ dc0: f6 f7 brtc .-4 ; 0xdbe <__divmodhi4_exit>
+ dc2: 90 95 com r25
+ dc4: 81 95 neg r24
+ dc6: 9f 4f sbci r25, 0xFF ; 255
+ dc8: 08 95 ret
+
+00000dca <__udivmodsi4>:
+ dca: a1 e2 ldi r26, 0x21 ; 33
+ dcc: 1a 2e mov r1, r26
+ dce: aa 1b sub r26, r26
+ dd0: bb 1b sub r27, r27
+ dd2: fd 01 movw r30, r26
+ dd4: 0d c0 rjmp .+26 ; 0xdf0 <__udivmodsi4_ep>
+
+00000dd6 <__udivmodsi4_loop>:
+ dd6: aa 1f adc r26, r26
+ dd8: bb 1f adc r27, r27
+ dda: ee 1f adc r30, r30
+ ddc: ff 1f adc r31, r31
+ dde: a2 17 cp r26, r18
+ de0: b3 07 cpc r27, r19
+ de2: e4 07 cpc r30, r20
+ de4: f5 07 cpc r31, r21
+ de6: 20 f0 brcs .+8 ; 0xdf0 <__udivmodsi4_ep>
+ de8: a2 1b sub r26, r18
+ dea: b3 0b sbc r27, r19
+ dec: e4 0b sbc r30, r20
+ dee: f5 0b sbc r31, r21
+
+00000df0 <__udivmodsi4_ep>:
+ df0: 66 1f adc r22, r22
+ df2: 77 1f adc r23, r23
+ df4: 88 1f adc r24, r24
+ df6: 99 1f adc r25, r25
+ df8: 1a 94 dec r1
+ dfa: 69 f7 brne .-38 ; 0xdd6 <__udivmodsi4_loop>
+ dfc: 60 95 com r22
+ dfe: 70 95 com r23
+ e00: 80 95 com r24
+ e02: 90 95 com r25
+ e04: 9b 01 movw r18, r22
+ e06: ac 01 movw r20, r24
+ e08: bd 01 movw r22, r26
+ e0a: cf 01 movw r24, r30
+ e0c: 08 95 ret
+
+00000e0e <_exit>:
+ e0e: f8 94 cli
+
+00000e10 <__stop_program>:
+ e10: ff cf rjmp .-2 ; 0xe10 <__stop_program>
--- /dev/null
+
+compiled.elf: file format elf32-avr
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .data 0000008a 00800100 00000e12 00000ea6 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 1 .text 00000e12 00000000 00000000 00000094 2**1
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .bss 00000014 0080018a 0080018a 00000f30 2**0
+ ALLOC
+ 3 .stab 000006b4 00000000 00000000 00000f30 2**2
+ CONTENTS, READONLY, DEBUGGING
+ 4 .stabstr 00000054 00000000 00000000 000015e4 2**0
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+ 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end>
+ 4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 48: 0c 94 75 00 jmp 0xea ; 0xea <__vector_18>
+ 4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 50: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+ 64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt>
+
+00000068 <__ctors_end>:
+ 68: 11 24 eor r1, r1
+ 6a: 1f be out 0x3f, r1 ; 63
+ 6c: cf ef ldi r28, 0xFF ; 255
+ 6e: d4 e0 ldi r29, 0x04 ; 4
+ 70: de bf out 0x3e, r29 ; 62
+ 72: cd bf out 0x3d, r28 ; 61
+
+00000074 <__do_copy_data>:
+ 74: 11 e0 ldi r17, 0x01 ; 1
+ 76: a0 e0 ldi r26, 0x00 ; 0
+ 78: b1 e0 ldi r27, 0x01 ; 1
+ 7a: e2 e1 ldi r30, 0x12 ; 18
+ 7c: fe e0 ldi r31, 0x0E ; 14
+ 7e: 02 c0 rjmp .+4 ; 0x84 <.do_copy_data_start>
+
+00000080 <.do_copy_data_loop>:
+ 80: 05 90 lpm r0, Z+
+ 82: 0d 92 st X+, r0
+
+00000084 <.do_copy_data_start>:
+ 84: aa 38 cpi r26, 0x8A ; 138
+ 86: b1 07 cpc r27, r17
+ 88: d9 f7 brne .-10 ; 0x80 <.do_copy_data_loop>
+
+0000008a <__do_clear_bss>:
+ 8a: 11 e0 ldi r17, 0x01 ; 1
+ 8c: aa e8 ldi r26, 0x8A ; 138
+ 8e: b1 e0 ldi r27, 0x01 ; 1
+ 90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start>
+
+00000092 <.do_clear_bss_loop>:
+ 92: 1d 92 st X+, r1
+
+00000094 <.do_clear_bss_start>:
+ 94: ae 39 cpi r26, 0x9E ; 158
+ 96: b1 07 cpc r27, r17
+ 98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop>
+ 9a: 0e 94 c6 05 call 0xb8c ; 0xb8c <main>
+ 9e: 0c 94 07 07 jmp 0xe0e ; 0xe0e <_exit>
+
+000000a2 <__bad_interrupt>:
+ a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
+
+000000a6 <setRXCIE_USART0>:
+ a6: e1 ec ldi r30, 0xC1 ; 193
+ a8: f0 e0 ldi r31, 0x00 ; 0
+ aa: 80 81 ld r24, Z
+ ac: 80 68 ori r24, 0x80 ; 128
+ ae: 80 83 st Z, r24
+ b0: 08 95 ret
+
+000000b2 <init_USART0>:
+ b2: 90 93 c5 00 sts 0x00C5, r25
+ b6: 80 93 c4 00 sts 0x00C4, r24
+ ba: 86 e0 ldi r24, 0x06 ; 6
+ bc: 80 93 c2 00 sts 0x00C2, r24
+ c0: e1 ec ldi r30, 0xC1 ; 193
+ c2: f0 e0 ldi r31, 0x00 ; 0
+ c4: 80 81 ld r24, Z
+ c6: 88 61 ori r24, 0x18 ; 24
+ c8: 80 83 st Z, r24
+ ca: 08 95 ret
+
+000000cc <receive_1byte_USART0>:
+ cc: 80 91 c0 00 lds r24, 0x00C0
+ d0: 87 ff sbrs r24, 7
+ d2: fc cf rjmp .-8 ; 0xcc <receive_1byte_USART0>
+ d4: 80 91 c6 00 lds r24, 0x00C6
+ d8: 08 95 ret
+
+000000da <transmit_1byte_USART0>:
+ da: 98 2f mov r25, r24
+ dc: 80 91 c0 00 lds r24, 0x00C0
+ e0: 85 ff sbrs r24, 5
+ e2: fc cf rjmp .-8 ; 0xdc <transmit_1byte_USART0+0x2>
+ e4: 90 93 c6 00 sts 0x00C6, r25
+ e8: 08 95 ret
+
+000000ea <__vector_18>:
+ ea: 1f 92 push r1
+ ec: 0f 92 push r0
+ ee: 0f b6 in r0, 0x3f ; 63
+ f0: 0f 92 push r0
+ f2: 11 24 eor r1, r1
+ f4: 8f 93 push r24
+ f6: df 93 push r29
+ f8: cf 93 push r28
+ fa: 0f 92 push r0
+ fc: cd b7 in r28, 0x3d ; 61
+ fe: de b7 in r29, 0x3e ; 62
+ 100: 80 91 c6 00 lds r24, 0x00C6
+ 104: 89 83 std Y+1, r24 ; 0x01
+ 106: 89 81 ldd r24, Y+1 ; 0x01
+ 108: 80 93 9d 01 sts 0x019D, r24
+ 10c: 0f 90 pop r0
+ 10e: cf 91 pop r28
+ 110: df 91 pop r29
+ 112: 8f 91 pop r24
+ 114: 0f 90 pop r0
+ 116: 0f be out 0x3f, r0 ; 63
+ 118: 0f 90 pop r0
+ 11a: 1f 90 pop r1
+ 11c: 18 95 reti
+
+0000011e <transmit_str_USART0>:
+ 11e: fc 01 movw r30, r24
+ 120: 07 c0 rjmp .+14 ; 0x130 <transmit_str_USART0+0x12>
+ 122: 80 91 c0 00 lds r24, 0x00C0
+ 126: 85 ff sbrs r24, 5
+ 128: fc cf rjmp .-8 ; 0x122 <transmit_str_USART0+0x4>
+ 12a: 90 93 c6 00 sts 0x00C6, r25
+ 12e: 31 96 adiw r30, 0x01 ; 1
+ 130: 90 81 ld r25, Z
+ 132: 99 23 and r25, r25
+ 134: b1 f7 brne .-20 ; 0x122 <transmit_str_USART0+0x4>
+ 136: 08 95 ret
+
+00000138 <transmit_4digit_USART0>:
+ 138: cf 93 push r28
+ 13a: df 93 push r29
+ 13c: ec 01 movw r28, r24
+ 13e: 28 ee ldi r18, 0xE8 ; 232
+ 140: 33 e0 ldi r19, 0x03 ; 3
+ 142: e0 e0 ldi r30, 0x00 ; 0
+ 144: f0 e0 ldi r31, 0x00 ; 0
+ 146: ce 01 movw r24, r28
+ 148: b9 01 movw r22, r18
+ 14a: 0e 94 d2 06 call 0xda4 ; 0xda4 <__divmodhi4>
+ 14e: 46 2f mov r20, r22
+ 150: 80 91 c0 00 lds r24, 0x00C0
+ 154: 85 ff sbrs r24, 5
+ 156: fc cf rjmp .-8 ; 0x150 <transmit_4digit_USART0+0x18>
+ 158: 40 5d subi r20, 0xD0 ; 208
+ 15a: 40 93 c6 00 sts 0x00C6, r20
+ 15e: 40 53 subi r20, 0x30 ; 48
+ 160: c9 01 movw r24, r18
+ 162: 6a e0 ldi r22, 0x0A ; 10
+ 164: 70 e0 ldi r23, 0x00 ; 0
+ 166: 0e 94 d2 06 call 0xda4 ; 0xda4 <__divmodhi4>
+ 16a: 31 96 adiw r30, 0x01 ; 1
+ 16c: e4 30 cpi r30, 0x04 ; 4
+ 16e: f1 05 cpc r31, r1
+ 170: 71 f0 breq .+28 ; 0x18e <transmit_4digit_USART0+0x56>
+ 172: 84 2f mov r24, r20
+ 174: 90 e0 ldi r25, 0x00 ; 0
+ 176: ac 01 movw r20, r24
+ 178: 42 9f mul r20, r18
+ 17a: c0 01 movw r24, r0
+ 17c: 43 9f mul r20, r19
+ 17e: 90 0d add r25, r0
+ 180: 52 9f mul r21, r18
+ 182: 90 0d add r25, r0
+ 184: 11 24 eor r1, r1
+ 186: c8 1b sub r28, r24
+ 188: d9 0b sbc r29, r25
+ 18a: 9b 01 movw r18, r22
+ 18c: dc cf rjmp .-72 ; 0x146 <transmit_4digit_USART0+0xe>
+ 18e: df 91 pop r29
+ 190: cf 91 pop r28
+ 192: 08 95 ret
+
+00000194 <delay_ms>:
+ 194: df 93 push r29
+ 196: cf 93 push r28
+ 198: 00 d0 rcall .+0 ; 0x19a <delay_ms+0x6>
+ 19a: cd b7 in r28, 0x3d ; 61
+ 19c: de b7 in r29, 0x3e ; 62
+ 19e: 9c 01 movw r18, r24
+ 1a0: 0f c0 rjmp .+30 ; 0x1c0 <delay_ms+0x2c>
+ 1a2: 1a 82 std Y+2, r1 ; 0x02
+ 1a4: 19 82 std Y+1, r1 ; 0x01
+ 1a6: 05 c0 rjmp .+10 ; 0x1b2 <delay_ms+0x1e>
+ 1a8: 89 81 ldd r24, Y+1 ; 0x01
+ 1aa: 9a 81 ldd r25, Y+2 ; 0x02
+ 1ac: 01 96 adiw r24, 0x01 ; 1
+ 1ae: 9a 83 std Y+2, r25 ; 0x02
+ 1b0: 89 83 std Y+1, r24 ; 0x01
+ 1b2: 89 81 ldd r24, Y+1 ; 0x01
+ 1b4: 9a 81 ldd r25, Y+2 ; 0x02
+ 1b6: 8b 35 cpi r24, 0x5B ; 91
+ 1b8: 91 05 cpc r25, r1
+ 1ba: b1 f7 brne .-20 ; 0x1a8 <delay_ms+0x14>
+ 1bc: 21 50 subi r18, 0x01 ; 1
+ 1be: 30 40 sbci r19, 0x00 ; 0
+ 1c0: 21 15 cp r18, r1
+ 1c2: 31 05 cpc r19, r1
+ 1c4: 71 f7 brne .-36 ; 0x1a2 <delay_ms+0xe>
+ 1c6: 0f 90 pop r0
+ 1c8: 0f 90 pop r0
+ 1ca: cf 91 pop r28
+ 1cc: df 91 pop r29
+ 1ce: 08 95 ret
+
+000001d0 <delay_ns>:
+ 1d0: df 93 push r29
+ 1d2: cf 93 push r28
+ 1d4: 00 d0 rcall .+0 ; 0x1d6 <delay_ns+0x6>
+ 1d6: cd b7 in r28, 0x3d ; 61
+ 1d8: de b7 in r29, 0x3e ; 62
+ 1da: 9c 01 movw r18, r24
+ 1dc: 0e c0 rjmp .+28 ; 0x1fa <delay_ns+0x2a>
+ 1de: 1a 82 std Y+2, r1 ; 0x02
+ 1e0: 19 82 std Y+1, r1 ; 0x01
+ 1e2: 05 c0 rjmp .+10 ; 0x1ee <delay_ns+0x1e>
+ 1e4: 89 81 ldd r24, Y+1 ; 0x01
+ 1e6: 9a 81 ldd r25, Y+2 ; 0x02
+ 1e8: 01 96 adiw r24, 0x01 ; 1
+ 1ea: 9a 83 std Y+2, r25 ; 0x02
+ 1ec: 89 83 std Y+1, r24 ; 0x01
+ 1ee: 89 81 ldd r24, Y+1 ; 0x01
+ 1f0: 9a 81 ldd r25, Y+2 ; 0x02
+ 1f2: 09 97 sbiw r24, 0x09 ; 9
+ 1f4: b9 f7 brne .-18 ; 0x1e4 <delay_ns+0x14>
+ 1f6: 21 50 subi r18, 0x01 ; 1
+ 1f8: 30 40 sbci r19, 0x00 ; 0
+ 1fa: 21 15 cp r18, r1
+ 1fc: 31 05 cpc r19, r1
+ 1fe: 79 f7 brne .-34 ; 0x1de <delay_ns+0xe>
+ 200: 0f 90 pop r0
+ 202: 0f 90 pop r0
+ 204: cf 91 pop r28
+ 206: df 91 pop r29
+ 208: 08 95 ret
+
+0000020a <beep>:
+ 20a: df 93 push r29
+ 20c: cf 93 push r28
+ 20e: 00 d0 rcall .+0 ; 0x210 <beep+0x6>
+ 210: cd b7 in r28, 0x3d ; 61
+ 212: de b7 in r29, 0x3e ; 62
+ 214: 40 e0 ldi r20, 0x00 ; 0
+ 216: 2a 9a sbi 0x05, 2 ; 5
+ 218: 21 e0 ldi r18, 0x01 ; 1
+ 21a: 30 e0 ldi r19, 0x00 ; 0
+ 21c: 1a 82 std Y+2, r1 ; 0x02
+ 21e: 19 82 std Y+1, r1 ; 0x01
+ 220: 05 c0 rjmp .+10 ; 0x22c <beep+0x22>
+ 222: 89 81 ldd r24, Y+1 ; 0x01
+ 224: 9a 81 ldd r25, Y+2 ; 0x02
+ 226: 01 96 adiw r24, 0x01 ; 1
+ 228: 9a 83 std Y+2, r25 ; 0x02
+ 22a: 89 83 std Y+1, r24 ; 0x01
+ 22c: 89 81 ldd r24, Y+1 ; 0x01
+ 22e: 9a 81 ldd r25, Y+2 ; 0x02
+ 230: 8b 35 cpi r24, 0x5B ; 91
+ 232: 91 05 cpc r25, r1
+ 234: b1 f7 brne .-20 ; 0x222 <beep+0x18>
+ 236: 21 50 subi r18, 0x01 ; 1
+ 238: 30 40 sbci r19, 0x00 ; 0
+ 23a: 81 f7 brne .-32 ; 0x21c <beep+0x12>
+ 23c: 2a 98 cbi 0x05, 2 ; 5
+ 23e: 21 e0 ldi r18, 0x01 ; 1
+ 240: 30 e0 ldi r19, 0x00 ; 0
+ 242: 1a 82 std Y+2, r1 ; 0x02
+ 244: 19 82 std Y+1, r1 ; 0x01
+ 246: 05 c0 rjmp .+10 ; 0x252 <beep+0x48>
+ 248: 89 81 ldd r24, Y+1 ; 0x01
+ 24a: 9a 81 ldd r25, Y+2 ; 0x02
+ 24c: 01 96 adiw r24, 0x01 ; 1
+ 24e: 9a 83 std Y+2, r25 ; 0x02
+ 250: 89 83 std Y+1, r24 ; 0x01
+ 252: 89 81 ldd r24, Y+1 ; 0x01
+ 254: 9a 81 ldd r25, Y+2 ; 0x02
+ 256: 8b 35 cpi r24, 0x5B ; 91
+ 258: 91 05 cpc r25, r1
+ 25a: b1 f7 brne .-20 ; 0x248 <beep+0x3e>
+ 25c: 21 50 subi r18, 0x01 ; 1
+ 25e: 30 40 sbci r19, 0x00 ; 0
+ 260: 81 f7 brne .-32 ; 0x242 <beep+0x38>
+ 262: 4f 5f subi r20, 0xFF ; 255
+ 264: 44 36 cpi r20, 0x64 ; 100
+ 266: b9 f6 brne .-82 ; 0x216 <beep+0xc>
+ 268: 0f 90 pop r0
+ 26a: 0f 90 pop r0
+ 26c: cf 91 pop r28
+ 26e: df 91 pop r29
+ 270: 08 95 ret
+
+00000272 <bleepBleepSound>:
+ 272: df 93 push r29
+ 274: cf 93 push r28
+ 276: 00 d0 rcall .+0 ; 0x278 <bleepBleepSound+0x6>
+ 278: cd b7 in r28, 0x3d ; 61
+ 27a: de b7 in r29, 0x3e ; 62
+ 27c: 41 e0 ldi r20, 0x01 ; 1
+ 27e: 50 e0 ldi r21, 0x00 ; 0
+ 280: 2a c0 rjmp .+84 ; 0x2d6 <bleepBleepSound+0x64>
+ 282: 2a 9a sbi 0x05, 2 ; 5
+ 284: 9a 01 movw r18, r20
+ 286: 1a 82 std Y+2, r1 ; 0x02
+ 288: 19 82 std Y+1, r1 ; 0x01
+ 28a: 05 c0 rjmp .+10 ; 0x296 <bleepBleepSound+0x24>
+ 28c: 89 81 ldd r24, Y+1 ; 0x01
+ 28e: 9a 81 ldd r25, Y+2 ; 0x02
+ 290: 01 96 adiw r24, 0x01 ; 1
+ 292: 9a 83 std Y+2, r25 ; 0x02
+ 294: 89 83 std Y+1, r24 ; 0x01
+ 296: 89 81 ldd r24, Y+1 ; 0x01
+ 298: 9a 81 ldd r25, Y+2 ; 0x02
+ 29a: 09 97 sbiw r24, 0x09 ; 9
+ 29c: b9 f7 brne .-18 ; 0x28c <bleepBleepSound+0x1a>
+ 29e: 21 50 subi r18, 0x01 ; 1
+ 2a0: 30 40 sbci r19, 0x00 ; 0
+ 2a2: 89 f7 brne .-30 ; 0x286 <bleepBleepSound+0x14>
+ 2a4: 2a 98 cbi 0x05, 2 ; 5
+ 2a6: 9a 01 movw r18, r20
+ 2a8: 1a 82 std Y+2, r1 ; 0x02
+ 2aa: 19 82 std Y+1, r1 ; 0x01
+ 2ac: 05 c0 rjmp .+10 ; 0x2b8 <bleepBleepSound+0x46>
+ 2ae: 89 81 ldd r24, Y+1 ; 0x01
+ 2b0: 9a 81 ldd r25, Y+2 ; 0x02
+ 2b2: 01 96 adiw r24, 0x01 ; 1
+ 2b4: 9a 83 std Y+2, r25 ; 0x02
+ 2b6: 89 83 std Y+1, r24 ; 0x01
+ 2b8: 89 81 ldd r24, Y+1 ; 0x01
+ 2ba: 9a 81 ldd r25, Y+2 ; 0x02
+ 2bc: 09 97 sbiw r24, 0x09 ; 9
+ 2be: b9 f7 brne .-18 ; 0x2ae <bleepBleepSound+0x3c>
+ 2c0: 21 50 subi r18, 0x01 ; 1
+ 2c2: 30 40 sbci r19, 0x00 ; 0
+ 2c4: 89 f7 brne .-30 ; 0x2a8 <bleepBleepSound+0x36>
+ 2c6: 6f 5f subi r22, 0xFF ; 255
+ 2c8: 64 36 cpi r22, 0x64 ; 100
+ 2ca: d9 f6 brne .-74 ; 0x282 <bleepBleepSound+0x10>
+ 2cc: 46 5f subi r20, 0xF6 ; 246
+ 2ce: 5f 4f sbci r21, 0xFF ; 255
+ 2d0: 49 32 cpi r20, 0x29 ; 41
+ 2d2: 51 05 cpc r21, r1
+ 2d4: 11 f0 breq .+4 ; 0x2da <bleepBleepSound+0x68>
+ 2d6: 60 e0 ldi r22, 0x00 ; 0
+ 2d8: d4 cf rjmp .-88 ; 0x282 <bleepBleepSound+0x10>
+ 2da: 0f 90 pop r0
+ 2dc: 0f 90 pop r0
+ 2de: cf 91 pop r28
+ 2e0: df 91 pop r29
+ 2e2: 08 95 ret
+
+000002e4 <putByte>:
+ 2e4: 68 2f mov r22, r24
+ 2e6: 27 e0 ldi r18, 0x07 ; 7
+ 2e8: 30 e0 ldi r19, 0x00 ; 0
+ 2ea: 41 e0 ldi r20, 0x01 ; 1
+ 2ec: 50 e0 ldi r21, 0x00 ; 0
+ 2ee: 2c 98 cbi 0x05, 4 ; 5
+ 2f0: ca 01 movw r24, r20
+ 2f2: 02 2e mov r0, r18
+ 2f4: 02 c0 rjmp .+4 ; 0x2fa <putByte+0x16>
+ 2f6: 88 0f add r24, r24
+ 2f8: 99 1f adc r25, r25
+ 2fa: 0a 94 dec r0
+ 2fc: e2 f7 brpl .-8 ; 0x2f6 <putByte+0x12>
+ 2fe: 86 23 and r24, r22
+ 300: 11 f0 breq .+4 ; 0x306 <putByte+0x22>
+ 302: 2b 9a sbi 0x05, 3 ; 5
+ 304: 01 c0 rjmp .+2 ; 0x308 <putByte+0x24>
+ 306: 2b 98 cbi 0x05, 3 ; 5
+ 308: 2c 9a sbi 0x05, 4 ; 5
+ 30a: 21 50 subi r18, 0x01 ; 1
+ 30c: 30 40 sbci r19, 0x00 ; 0
+ 30e: 8f ef ldi r24, 0xFF ; 255
+ 310: 2f 3f cpi r18, 0xFF ; 255
+ 312: 38 07 cpc r19, r24
+ 314: 61 f7 brne .-40 ; 0x2ee <putByte+0xa>
+ 316: 08 95 ret
+
+00000318 <maxOne>:
+ 318: 0f 93 push r16
+ 31a: 1f 93 push r17
+ 31c: cf 93 push r28
+ 31e: df 93 push r29
+ 320: 16 2f mov r17, r22
+ 322: 04 2f mov r16, r20
+ 324: 2d 98 cbi 0x05, 5 ; 5
+ 326: 21 e0 ldi r18, 0x01 ; 1
+ 328: 30 e0 ldi r19, 0x00 ; 0
+ 32a: c8 2f mov r28, r24
+ 32c: d0 e0 ldi r29, 0x00 ; 0
+ 32e: 08 c0 rjmp .+16 ; 0x340 <maxOne+0x28>
+ 330: 80 e0 ldi r24, 0x00 ; 0
+ 332: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 336: 80 e0 ldi r24, 0x00 ; 0
+ 338: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 33c: 20 e0 ldi r18, 0x00 ; 0
+ 33e: 30 e0 ldi r19, 0x00 ; 0
+ 340: c2 17 cp r28, r18
+ 342: d3 07 cpc r29, r19
+ 344: ac f3 brlt .-22 ; 0x330 <maxOne+0x18>
+ 346: 81 2f mov r24, r17
+ 348: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 34c: 80 2f mov r24, r16
+ 34e: 04 c0 rjmp .+8 ; 0x358 <maxOne+0x40>
+ 350: 80 e0 ldi r24, 0x00 ; 0
+ 352: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 356: 80 e0 ldi r24, 0x00 ; 0
+ 358: 0e 94 72 01 call 0x2e4 ; 0x2e4 <putByte>
+ 35c: 21 97 sbiw r28, 0x01 ; 1
+ 35e: 1c 16 cp r1, r28
+ 360: 1d 06 cpc r1, r29
+ 362: b4 f3 brlt .-20 ; 0x350 <maxOne+0x38>
+ 364: 2d 98 cbi 0x05, 5 ; 5
+ 366: 2d 9a sbi 0x05, 5 ; 5
+ 368: df 91 pop r29
+ 36a: cf 91 pop r28
+ 36c: 1f 91 pop r17
+ 36e: 0f 91 pop r16
+ 370: 08 95 ret
+
+00000372 <moveLine>:
+ 372: 48 2f mov r20, r24
+ 374: 50 e0 ldi r21, 0x00 ; 0
+ 376: 26 2f mov r18, r22
+ 378: 30 e0 ldi r19, 0x00 ; 0
+ 37a: 65 30 cpi r22, 0x05 ; 5
+ 37c: 58 f4 brcc .+22 ; 0x394 <moveLine+0x22>
+ 37e: 84 e0 ldi r24, 0x04 ; 4
+ 380: 90 e0 ldi r25, 0x00 ; 0
+ 382: 82 1b sub r24, r18
+ 384: 93 0b sbc r25, r19
+ 386: 02 c0 rjmp .+4 ; 0x38c <moveLine+0x1a>
+ 388: 44 0f add r20, r20
+ 38a: 55 1f adc r21, r21
+ 38c: 8a 95 dec r24
+ 38e: e2 f7 brpl .-8 ; 0x388 <moveLine+0x16>
+ 390: 84 2f mov r24, r20
+ 392: 08 95 ret
+ 394: 24 50 subi r18, 0x04 ; 4
+ 396: 30 40 sbci r19, 0x00 ; 0
+ 398: 02 c0 rjmp .+4 ; 0x39e <moveLine+0x2c>
+ 39a: 55 95 asr r21
+ 39c: 47 95 ror r20
+ 39e: 2a 95 dec r18
+ 3a0: e2 f7 brpl .-8 ; 0x39a <moveLine+0x28>
+ 3a2: 84 2f mov r24, r20
+ 3a4: 08 95 ret
+
+000003a6 <redrawScreen>:
+ 3a6: 0f 93 push r16
+ 3a8: 1f 93 push r17
+ 3aa: cf 93 push r28
+ 3ac: df 93 push r29
+ 3ae: c0 e0 ldi r28, 0x00 ; 0
+ 3b0: d0 e0 ldi r29, 0x00 ; 0
+ 3b2: 04 e0 ldi r16, 0x04 ; 4
+ 3b4: 10 e0 ldi r17, 0x00 ; 0
+ 3b6: 80 91 8c 01 lds r24, 0x018C
+ 3ba: 28 2f mov r18, r24
+ 3bc: 30 e0 ldi r19, 0x00 ; 0
+ 3be: c2 17 cp r28, r18
+ 3c0: d3 07 cpc r29, r19
+ 3c2: ec f0 brlt .+58 ; 0x3fe <redrawScreen+0x58>
+ 3c4: c9 01 movw r24, r18
+ 3c6: 03 96 adiw r24, 0x03 ; 3
+ 3c8: 8c 17 cp r24, r28
+ 3ca: 9d 07 cpc r25, r29
+ 3cc: c4 f0 brlt .+48 ; 0x3fe <redrawScreen+0x58>
+ 3ce: ce 01 movw r24, r28
+ 3d0: 82 1b sub r24, r18
+ 3d2: 93 0b sbc r25, r19
+ 3d4: e0 91 84 01 lds r30, 0x0184
+ 3d8: f0 e0 ldi r31, 0x00 ; 0
+ 3da: 20 91 8b 01 lds r18, 0x018B
+ 3de: ee 0f add r30, r30
+ 3e0: ff 1f adc r31, r31
+ 3e2: ee 0f add r30, r30
+ 3e4: ff 1f adc r31, r31
+ 3e6: e2 0f add r30, r18
+ 3e8: f1 1d adc r31, r1
+ 3ea: ee 0f add r30, r30
+ 3ec: ff 1f adc r31, r31
+ 3ee: ee 0f add r30, r30
+ 3f0: ff 1f adc r31, r31
+ 3f2: e8 0f add r30, r24
+ 3f4: f9 1f adc r31, r25
+ 3f6: ec 5c subi r30, 0xCC ; 204
+ 3f8: fe 4f sbci r31, 0xFE ; 254
+ 3fa: e0 81 ld r30, Z
+ 3fc: 01 c0 rjmp .+2 ; 0x400 <redrawScreen+0x5a>
+ 3fe: e0 e0 ldi r30, 0x00 ; 0
+ 400: 80 91 85 01 lds r24, 0x0185
+ 404: 4e 2f mov r20, r30
+ 406: 50 e0 ldi r21, 0x00 ; 0
+ 408: 28 2f mov r18, r24
+ 40a: 30 e0 ldi r19, 0x00 ; 0
+ 40c: 85 30 cpi r24, 0x05 ; 5
+ 40e: 48 f4 brcc .+18 ; 0x422 <redrawScreen+0x7c>
+ 410: c8 01 movw r24, r16
+ 412: 82 1b sub r24, r18
+ 414: 93 0b sbc r25, r19
+ 416: 02 c0 rjmp .+4 ; 0x41c <redrawScreen+0x76>
+ 418: 44 0f add r20, r20
+ 41a: 55 1f adc r21, r21
+ 41c: 8a 95 dec r24
+ 41e: e2 f7 brpl .-8 ; 0x418 <redrawScreen+0x72>
+ 420: 07 c0 rjmp .+14 ; 0x430 <redrawScreen+0x8a>
+ 422: 24 50 subi r18, 0x04 ; 4
+ 424: 30 40 sbci r19, 0x00 ; 0
+ 426: 02 c0 rjmp .+4 ; 0x42c <redrawScreen+0x86>
+ 428: 55 95 asr r21
+ 42a: 47 95 ror r20
+ 42c: 2a 95 dec r18
+ 42e: e2 f7 brpl .-8 ; 0x428 <redrawScreen+0x82>
+ 430: ce 01 movw r24, r28
+ 432: 8f 5f subi r24, 0xFF ; 255
+ 434: 68 2f mov r22, r24
+ 436: fe 01 movw r30, r28
+ 438: ee 56 subi r30, 0x6E ; 110
+ 43a: fe 4f sbci r31, 0xFE ; 254
+ 43c: 80 81 ld r24, Z
+ 43e: 48 2b or r20, r24
+ 440: 81 e0 ldi r24, 0x01 ; 1
+ 442: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 446: 21 96 adiw r28, 0x01 ; 1
+ 448: c8 30 cpi r28, 0x08 ; 8
+ 44a: d1 05 cpc r29, r1
+ 44c: 09 f0 breq .+2 ; 0x450 <redrawScreen+0xaa>
+ 44e: b3 cf rjmp .-154 ; 0x3b6 <redrawScreen+0x10>
+ 450: df 91 pop r29
+ 452: cf 91 pop r28
+ 454: 1f 91 pop r17
+ 456: 0f 91 pop r16
+ 458: 08 95 ret
+
+0000045a <checkDown>:
+ 45a: 1f 93 push r17
+ 45c: cf 93 push r28
+ 45e: df 93 push r29
+ 460: 10 91 85 01 lds r17, 0x0185
+ 464: 81 2f mov r24, r17
+ 466: 90 e0 ldi r25, 0x00 ; 0
+ 468: 44 e0 ldi r20, 0x04 ; 4
+ 46a: 50 e0 ldi r21, 0x00 ; 0
+ 46c: 48 1b sub r20, r24
+ 46e: 59 0b sbc r21, r25
+ 470: ec 01 movw r28, r24
+ 472: 24 97 sbiw r28, 0x04 ; 4
+ 474: 80 91 8c 01 lds r24, 0x018C
+ 478: 30 91 8b 01 lds r19, 0x018B
+ 47c: 20 91 84 01 lds r18, 0x0184
+ 480: e2 2f mov r30, r18
+ 482: f0 e0 ldi r31, 0x00 ; 0
+ 484: ee 0f add r30, r30
+ 486: ff 1f adc r31, r31
+ 488: ee 0f add r30, r30
+ 48a: ff 1f adc r31, r31
+ 48c: e3 0f add r30, r19
+ 48e: f1 1d adc r31, r1
+ 490: ee 0f add r30, r30
+ 492: ff 1f adc r31, r31
+ 494: ee 0f add r30, r30
+ 496: ff 1f adc r31, r31
+ 498: ec 5c subi r30, 0xCC ; 204
+ 49a: fe 4f sbci r31, 0xFE ; 254
+ 49c: 90 e0 ldi r25, 0x00 ; 0
+ 49e: dc 01 movw r26, r24
+ 4a0: ad 56 subi r26, 0x6D ; 109
+ 4a2: be 4f sbci r27, 0xFE ; 254
+ 4a4: bc 01 movw r22, r24
+ 4a6: 69 56 subi r22, 0x69 ; 105
+ 4a8: 7e 4f sbci r23, 0xFE ; 254
+ 4aa: 80 81 ld r24, Z
+ 4ac: 28 2f mov r18, r24
+ 4ae: 30 e0 ldi r19, 0x00 ; 0
+ 4b0: 15 30 cpi r17, 0x05 ; 5
+ 4b2: 38 f4 brcc .+14 ; 0x4c2 <checkDown+0x68>
+ 4b4: 04 2e mov r0, r20
+ 4b6: 02 c0 rjmp .+4 ; 0x4bc <checkDown+0x62>
+ 4b8: 22 0f add r18, r18
+ 4ba: 33 1f adc r19, r19
+ 4bc: 0a 94 dec r0
+ 4be: e2 f7 brpl .-8 ; 0x4b8 <checkDown+0x5e>
+ 4c0: 06 c0 rjmp .+12 ; 0x4ce <checkDown+0x74>
+ 4c2: 0c 2e mov r0, r28
+ 4c4: 02 c0 rjmp .+4 ; 0x4ca <checkDown+0x70>
+ 4c6: 35 95 asr r19
+ 4c8: 27 95 ror r18
+ 4ca: 0a 94 dec r0
+ 4cc: e2 f7 brpl .-8 ; 0x4c6 <checkDown+0x6c>
+ 4ce: 8c 91 ld r24, X
+ 4d0: 28 23 and r18, r24
+ 4d2: 11 f0 breq .+4 ; 0x4d8 <checkDown+0x7e>
+ 4d4: 81 e0 ldi r24, 0x01 ; 1
+ 4d6: 06 c0 rjmp .+12 ; 0x4e4 <checkDown+0x8a>
+ 4d8: 31 96 adiw r30, 0x01 ; 1
+ 4da: 11 96 adiw r26, 0x01 ; 1
+ 4dc: a6 17 cp r26, r22
+ 4de: b7 07 cpc r27, r23
+ 4e0: 21 f7 brne .-56 ; 0x4aa <checkDown+0x50>
+ 4e2: 80 e0 ldi r24, 0x00 ; 0
+ 4e4: df 91 pop r29
+ 4e6: cf 91 pop r28
+ 4e8: 1f 91 pop r17
+ 4ea: 08 95 ret
+
+000004ec <checkStart>:
+ 4ec: 1f 93 push r17
+ 4ee: cf 93 push r28
+ 4f0: df 93 push r29
+ 4f2: 10 91 85 01 lds r17, 0x0185
+ 4f6: 81 2f mov r24, r17
+ 4f8: 90 e0 ldi r25, 0x00 ; 0
+ 4fa: 44 e0 ldi r20, 0x04 ; 4
+ 4fc: 50 e0 ldi r21, 0x00 ; 0
+ 4fe: 48 1b sub r20, r24
+ 500: 59 0b sbc r21, r25
+ 502: ec 01 movw r28, r24
+ 504: 24 97 sbiw r28, 0x04 ; 4
+ 506: 80 91 8c 01 lds r24, 0x018C
+ 50a: 30 91 8b 01 lds r19, 0x018B
+ 50e: 20 91 84 01 lds r18, 0x0184
+ 512: e2 2f mov r30, r18
+ 514: f0 e0 ldi r31, 0x00 ; 0
+ 516: ee 0f add r30, r30
+ 518: ff 1f adc r31, r31
+ 51a: ee 0f add r30, r30
+ 51c: ff 1f adc r31, r31
+ 51e: e3 0f add r30, r19
+ 520: f1 1d adc r31, r1
+ 522: ee 0f add r30, r30
+ 524: ff 1f adc r31, r31
+ 526: ee 0f add r30, r30
+ 528: ff 1f adc r31, r31
+ 52a: ec 5c subi r30, 0xCC ; 204
+ 52c: fe 4f sbci r31, 0xFE ; 254
+ 52e: 90 e0 ldi r25, 0x00 ; 0
+ 530: dc 01 movw r26, r24
+ 532: ae 56 subi r26, 0x6E ; 110
+ 534: be 4f sbci r27, 0xFE ; 254
+ 536: bc 01 movw r22, r24
+ 538: 6a 56 subi r22, 0x6A ; 106
+ 53a: 7e 4f sbci r23, 0xFE ; 254
+ 53c: 80 81 ld r24, Z
+ 53e: 28 2f mov r18, r24
+ 540: 30 e0 ldi r19, 0x00 ; 0
+ 542: 15 30 cpi r17, 0x05 ; 5
+ 544: 38 f4 brcc .+14 ; 0x554 <__stack+0x55>
+ 546: 04 2e mov r0, r20
+ 548: 02 c0 rjmp .+4 ; 0x54e <__stack+0x4f>
+ 54a: 22 0f add r18, r18
+ 54c: 33 1f adc r19, r19
+ 54e: 0a 94 dec r0
+ 550: e2 f7 brpl .-8 ; 0x54a <__stack+0x4b>
+ 552: 06 c0 rjmp .+12 ; 0x560 <__stack+0x61>
+ 554: 0c 2e mov r0, r28
+ 556: 02 c0 rjmp .+4 ; 0x55c <__stack+0x5d>
+ 558: 35 95 asr r19
+ 55a: 27 95 ror r18
+ 55c: 0a 94 dec r0
+ 55e: e2 f7 brpl .-8 ; 0x558 <__stack+0x59>
+ 560: 8c 91 ld r24, X
+ 562: 28 23 and r18, r24
+ 564: 11 f0 breq .+4 ; 0x56a <__stack+0x6b>
+ 566: 81 e0 ldi r24, 0x01 ; 1
+ 568: 06 c0 rjmp .+12 ; 0x576 <__stack+0x77>
+ 56a: 31 96 adiw r30, 0x01 ; 1
+ 56c: 11 96 adiw r26, 0x01 ; 1
+ 56e: a6 17 cp r26, r22
+ 570: b7 07 cpc r27, r23
+ 572: 21 f7 brne .-56 ; 0x53c <__stack+0x3d>
+ 574: 80 e0 ldi r24, 0x00 ; 0
+ 576: df 91 pop r29
+ 578: cf 91 pop r28
+ 57a: 1f 91 pop r17
+ 57c: 08 95 ret
+
+0000057e <checkLeft>:
+ 57e: bf 92 push r11
+ 580: cf 92 push r12
+ 582: df 92 push r13
+ 584: ef 92 push r14
+ 586: ff 92 push r15
+ 588: 0f 93 push r16
+ 58a: 1f 93 push r17
+ 58c: cf 93 push r28
+ 58e: df 93 push r29
+ 590: 50 91 85 01 lds r21, 0x0185
+ 594: 85 2f mov r24, r21
+ 596: 90 e0 ldi r25, 0x00 ; 0
+ 598: 24 e0 ldi r18, 0x04 ; 4
+ 59a: 30 e0 ldi r19, 0x00 ; 0
+ 59c: 69 01 movw r12, r18
+ 59e: c8 1a sub r12, r24
+ 5a0: d9 0a sbc r13, r25
+ 5a2: 0c ef ldi r16, 0xFC ; 252
+ 5a4: e0 2e mov r14, r16
+ 5a6: 0f ef ldi r16, 0xFF ; 255
+ 5a8: f0 2e mov r15, r16
+ 5aa: e8 0e add r14, r24
+ 5ac: f9 1e adc r15, r25
+ 5ae: b5 2e mov r11, r21
+ 5b0: ba 94 dec r11
+ 5b2: 8b 2d mov r24, r11
+ 5b4: 90 e0 ldi r25, 0x00 ; 0
+ 5b6: 89 01 movw r16, r18
+ 5b8: 08 1b sub r16, r24
+ 5ba: 19 0b sbc r17, r25
+ 5bc: ec 01 movw r28, r24
+ 5be: 24 97 sbiw r28, 0x04 ; 4
+ 5c0: 80 91 8c 01 lds r24, 0x018C
+ 5c4: 30 91 8b 01 lds r19, 0x018B
+ 5c8: 20 91 84 01 lds r18, 0x0184
+ 5cc: e2 2f mov r30, r18
+ 5ce: f0 e0 ldi r31, 0x00 ; 0
+ 5d0: ee 0f add r30, r30
+ 5d2: ff 1f adc r31, r31
+ 5d4: ee 0f add r30, r30
+ 5d6: ff 1f adc r31, r31
+ 5d8: e3 0f add r30, r19
+ 5da: f1 1d adc r31, r1
+ 5dc: ee 0f add r30, r30
+ 5de: ff 1f adc r31, r31
+ 5e0: ee 0f add r30, r30
+ 5e2: ff 1f adc r31, r31
+ 5e4: ec 5c subi r30, 0xCC ; 204
+ 5e6: fe 4f sbci r31, 0xFE ; 254
+ 5e8: 90 e0 ldi r25, 0x00 ; 0
+ 5ea: dc 01 movw r26, r24
+ 5ec: ae 56 subi r26, 0x6E ; 110
+ 5ee: be 4f sbci r27, 0xFE ; 254
+ 5f0: bc 01 movw r22, r24
+ 5f2: 6a 56 subi r22, 0x6A ; 106
+ 5f4: 7e 4f sbci r23, 0xFE ; 254
+ 5f6: 40 81 ld r20, Z
+ 5f8: 24 2f mov r18, r20
+ 5fa: 30 e0 ldi r19, 0x00 ; 0
+ 5fc: 55 30 cpi r21, 0x05 ; 5
+ 5fe: 38 f4 brcc .+14 ; 0x60e <checkLeft+0x90>
+ 600: 0c 2c mov r0, r12
+ 602: 02 c0 rjmp .+4 ; 0x608 <checkLeft+0x8a>
+ 604: 22 0f add r18, r18
+ 606: 33 1f adc r19, r19
+ 608: 0a 94 dec r0
+ 60a: e2 f7 brpl .-8 ; 0x604 <checkLeft+0x86>
+ 60c: 06 c0 rjmp .+12 ; 0x61a <checkLeft+0x9c>
+ 60e: 0e 2c mov r0, r14
+ 610: 02 c0 rjmp .+4 ; 0x616 <checkLeft+0x98>
+ 612: 35 95 asr r19
+ 614: 27 95 ror r18
+ 616: 0a 94 dec r0
+ 618: e2 f7 brpl .-8 ; 0x612 <checkLeft+0x94>
+ 61a: 27 fd sbrc r18, 7
+ 61c: 1c c0 rjmp .+56 ; 0x656 <checkLeft+0xd8>
+ 61e: 24 2f mov r18, r20
+ 620: 30 e0 ldi r19, 0x00 ; 0
+ 622: 84 e0 ldi r24, 0x04 ; 4
+ 624: 8b 15 cp r24, r11
+ 626: 38 f0 brcs .+14 ; 0x636 <checkLeft+0xb8>
+ 628: 00 2e mov r0, r16
+ 62a: 02 c0 rjmp .+4 ; 0x630 <checkLeft+0xb2>
+ 62c: 22 0f add r18, r18
+ 62e: 33 1f adc r19, r19
+ 630: 0a 94 dec r0
+ 632: e2 f7 brpl .-8 ; 0x62c <checkLeft+0xae>
+ 634: 06 c0 rjmp .+12 ; 0x642 <checkLeft+0xc4>
+ 636: 0c 2e mov r0, r28
+ 638: 02 c0 rjmp .+4 ; 0x63e <checkLeft+0xc0>
+ 63a: 35 95 asr r19
+ 63c: 27 95 ror r18
+ 63e: 0a 94 dec r0
+ 640: e2 f7 brpl .-8 ; 0x63a <checkLeft+0xbc>
+ 642: 8c 91 ld r24, X
+ 644: 28 23 and r18, r24
+ 646: 39 f4 brne .+14 ; 0x656 <checkLeft+0xd8>
+ 648: 31 96 adiw r30, 0x01 ; 1
+ 64a: 11 96 adiw r26, 0x01 ; 1
+ 64c: a6 17 cp r26, r22
+ 64e: b7 07 cpc r27, r23
+ 650: 91 f6 brne .-92 ; 0x5f6 <checkLeft+0x78>
+ 652: 80 e0 ldi r24, 0x00 ; 0
+ 654: 01 c0 rjmp .+2 ; 0x658 <checkLeft+0xda>
+ 656: 81 e0 ldi r24, 0x01 ; 1
+ 658: df 91 pop r29
+ 65a: cf 91 pop r28
+ 65c: 1f 91 pop r17
+ 65e: 0f 91 pop r16
+ 660: ff 90 pop r15
+ 662: ef 90 pop r14
+ 664: df 90 pop r13
+ 666: cf 90 pop r12
+ 668: bf 90 pop r11
+ 66a: 08 95 ret
+
+0000066c <checkRight>:
+ 66c: bf 92 push r11
+ 66e: cf 92 push r12
+ 670: df 92 push r13
+ 672: ef 92 push r14
+ 674: ff 92 push r15
+ 676: 0f 93 push r16
+ 678: 1f 93 push r17
+ 67a: cf 93 push r28
+ 67c: df 93 push r29
+ 67e: 50 91 85 01 lds r21, 0x0185
+ 682: 85 2f mov r24, r21
+ 684: 90 e0 ldi r25, 0x00 ; 0
+ 686: 24 e0 ldi r18, 0x04 ; 4
+ 688: 30 e0 ldi r19, 0x00 ; 0
+ 68a: 69 01 movw r12, r18
+ 68c: c8 1a sub r12, r24
+ 68e: d9 0a sbc r13, r25
+ 690: 4c ef ldi r20, 0xFC ; 252
+ 692: e4 2e mov r14, r20
+ 694: 4f ef ldi r20, 0xFF ; 255
+ 696: f4 2e mov r15, r20
+ 698: e8 0e add r14, r24
+ 69a: f9 1e adc r15, r25
+ 69c: b5 2e mov r11, r21
+ 69e: b3 94 inc r11
+ 6a0: 8b 2d mov r24, r11
+ 6a2: 90 e0 ldi r25, 0x00 ; 0
+ 6a4: 89 01 movw r16, r18
+ 6a6: 08 1b sub r16, r24
+ 6a8: 19 0b sbc r17, r25
+ 6aa: ec 01 movw r28, r24
+ 6ac: 24 97 sbiw r28, 0x04 ; 4
+ 6ae: 80 91 8c 01 lds r24, 0x018C
+ 6b2: 30 91 8b 01 lds r19, 0x018B
+ 6b6: 20 91 84 01 lds r18, 0x0184
+ 6ba: e2 2f mov r30, r18
+ 6bc: f0 e0 ldi r31, 0x00 ; 0
+ 6be: ee 0f add r30, r30
+ 6c0: ff 1f adc r31, r31
+ 6c2: ee 0f add r30, r30
+ 6c4: ff 1f adc r31, r31
+ 6c6: e3 0f add r30, r19
+ 6c8: f1 1d adc r31, r1
+ 6ca: ee 0f add r30, r30
+ 6cc: ff 1f adc r31, r31
+ 6ce: ee 0f add r30, r30
+ 6d0: ff 1f adc r31, r31
+ 6d2: ec 5c subi r30, 0xCC ; 204
+ 6d4: fe 4f sbci r31, 0xFE ; 254
+ 6d6: 90 e0 ldi r25, 0x00 ; 0
+ 6d8: dc 01 movw r26, r24
+ 6da: ae 56 subi r26, 0x6E ; 110
+ 6dc: be 4f sbci r27, 0xFE ; 254
+ 6de: bc 01 movw r22, r24
+ 6e0: 6a 56 subi r22, 0x6A ; 106
+ 6e2: 7e 4f sbci r23, 0xFE ; 254
+ 6e4: 40 81 ld r20, Z
+ 6e6: 24 2f mov r18, r20
+ 6e8: 30 e0 ldi r19, 0x00 ; 0
+ 6ea: 55 30 cpi r21, 0x05 ; 5
+ 6ec: 38 f4 brcc .+14 ; 0x6fc <checkRight+0x90>
+ 6ee: 0c 2c mov r0, r12
+ 6f0: 02 c0 rjmp .+4 ; 0x6f6 <checkRight+0x8a>
+ 6f2: 22 0f add r18, r18
+ 6f4: 33 1f adc r19, r19
+ 6f6: 0a 94 dec r0
+ 6f8: e2 f7 brpl .-8 ; 0x6f2 <checkRight+0x86>
+ 6fa: 06 c0 rjmp .+12 ; 0x708 <checkRight+0x9c>
+ 6fc: 0e 2c mov r0, r14
+ 6fe: 02 c0 rjmp .+4 ; 0x704 <checkRight+0x98>
+ 700: 35 95 asr r19
+ 702: 27 95 ror r18
+ 704: 0a 94 dec r0
+ 706: e2 f7 brpl .-8 ; 0x700 <checkRight+0x94>
+ 708: 20 fd sbrc r18, 0
+ 70a: 1c c0 rjmp .+56 ; 0x744 <checkRight+0xd8>
+ 70c: 24 2f mov r18, r20
+ 70e: 30 e0 ldi r19, 0x00 ; 0
+ 710: 84 e0 ldi r24, 0x04 ; 4
+ 712: 8b 15 cp r24, r11
+ 714: 38 f0 brcs .+14 ; 0x724 <checkRight+0xb8>
+ 716: 00 2e mov r0, r16
+ 718: 02 c0 rjmp .+4 ; 0x71e <checkRight+0xb2>
+ 71a: 22 0f add r18, r18
+ 71c: 33 1f adc r19, r19
+ 71e: 0a 94 dec r0
+ 720: e2 f7 brpl .-8 ; 0x71a <checkRight+0xae>
+ 722: 06 c0 rjmp .+12 ; 0x730 <checkRight+0xc4>
+ 724: 0c 2e mov r0, r28
+ 726: 02 c0 rjmp .+4 ; 0x72c <checkRight+0xc0>
+ 728: 35 95 asr r19
+ 72a: 27 95 ror r18
+ 72c: 0a 94 dec r0
+ 72e: e2 f7 brpl .-8 ; 0x728 <checkRight+0xbc>
+ 730: 8c 91 ld r24, X
+ 732: 28 23 and r18, r24
+ 734: 39 f4 brne .+14 ; 0x744 <checkRight+0xd8>
+ 736: 31 96 adiw r30, 0x01 ; 1
+ 738: 11 96 adiw r26, 0x01 ; 1
+ 73a: a6 17 cp r26, r22
+ 73c: b7 07 cpc r27, r23
+ 73e: 91 f6 brne .-92 ; 0x6e4 <checkRight+0x78>
+ 740: 80 e0 ldi r24, 0x00 ; 0
+ 742: 01 c0 rjmp .+2 ; 0x746 <checkRight+0xda>
+ 744: 81 e0 ldi r24, 0x01 ; 1
+ 746: df 91 pop r29
+ 748: cf 91 pop r28
+ 74a: 1f 91 pop r17
+ 74c: 0f 91 pop r16
+ 74e: ff 90 pop r15
+ 750: ef 90 pop r14
+ 752: df 90 pop r13
+ 754: cf 90 pop r12
+ 756: bf 90 pop r11
+ 758: 08 95 ret
+
+0000075a <checkTurn>:
+ 75a: 0f 93 push r16
+ 75c: 1f 93 push r17
+ 75e: cf 93 push r28
+ 760: df 93 push r29
+ 762: 80 91 8b 01 lds r24, 0x018B
+ 766: 83 30 cpi r24, 0x03 ; 3
+ 768: 10 f0 brcs .+4 ; 0x76e <checkTurn+0x14>
+ 76a: 20 e0 ldi r18, 0x00 ; 0
+ 76c: 02 c0 rjmp .+4 ; 0x772 <checkTurn+0x18>
+ 76e: 28 2f mov r18, r24
+ 770: 2f 5f subi r18, 0xFF ; 255
+ 772: 50 91 84 01 lds r21, 0x0184
+ 776: 40 91 85 01 lds r20, 0x0185
+ 77a: 84 2f mov r24, r20
+ 77c: 90 e0 ldi r25, 0x00 ; 0
+ 77e: 64 e0 ldi r22, 0x04 ; 4
+ 780: 70 e0 ldi r23, 0x00 ; 0
+ 782: 68 1b sub r22, r24
+ 784: 79 0b sbc r23, r25
+ 786: 8c 01 movw r16, r24
+ 788: 04 50 subi r16, 0x04 ; 4
+ 78a: 10 40 sbci r17, 0x00 ; 0
+ 78c: 80 91 8c 01 lds r24, 0x018C
+ 790: e5 2f mov r30, r21
+ 792: f0 e0 ldi r31, 0x00 ; 0
+ 794: ee 0f add r30, r30
+ 796: ff 1f adc r31, r31
+ 798: ee 0f add r30, r30
+ 79a: ff 1f adc r31, r31
+ 79c: e2 0f add r30, r18
+ 79e: f1 1d adc r31, r1
+ 7a0: ee 0f add r30, r30
+ 7a2: ff 1f adc r31, r31
+ 7a4: ee 0f add r30, r30
+ 7a6: ff 1f adc r31, r31
+ 7a8: ec 5c subi r30, 0xCC ; 204
+ 7aa: fe 4f sbci r31, 0xFE ; 254
+ 7ac: 90 e0 ldi r25, 0x00 ; 0
+ 7ae: dc 01 movw r26, r24
+ 7b0: ae 56 subi r26, 0x6E ; 110
+ 7b2: be 4f sbci r27, 0xFE ; 254
+ 7b4: ec 01 movw r28, r24
+ 7b6: ca 56 subi r28, 0x6A ; 106
+ 7b8: de 4f sbci r29, 0xFE ; 254
+ 7ba: 80 81 ld r24, Z
+ 7bc: 28 2f mov r18, r24
+ 7be: 30 e0 ldi r19, 0x00 ; 0
+ 7c0: 45 30 cpi r20, 0x05 ; 5
+ 7c2: 38 f4 brcc .+14 ; 0x7d2 <checkTurn+0x78>
+ 7c4: 06 2e mov r0, r22
+ 7c6: 02 c0 rjmp .+4 ; 0x7cc <checkTurn+0x72>
+ 7c8: 22 0f add r18, r18
+ 7ca: 33 1f adc r19, r19
+ 7cc: 0a 94 dec r0
+ 7ce: e2 f7 brpl .-8 ; 0x7c8 <checkTurn+0x6e>
+ 7d0: 06 c0 rjmp .+12 ; 0x7de <checkTurn+0x84>
+ 7d2: 00 2e mov r0, r16
+ 7d4: 02 c0 rjmp .+4 ; 0x7da <checkTurn+0x80>
+ 7d6: 35 95 asr r19
+ 7d8: 27 95 ror r18
+ 7da: 0a 94 dec r0
+ 7dc: e2 f7 brpl .-8 ; 0x7d6 <checkTurn+0x7c>
+ 7de: 51 30 cpi r21, 0x01 ; 1
+ 7e0: 31 f0 breq .+12 ; 0x7ee <checkTurn+0x94>
+ 7e2: 52 30 cpi r21, 0x02 ; 2
+ 7e4: 11 f0 breq .+4 ; 0x7ea <checkTurn+0x90>
+ 7e6: 53 30 cpi r21, 0x03 ; 3
+ 7e8: 29 f4 brne .+10 ; 0x7f4 <checkTurn+0x9a>
+ 7ea: 41 30 cpi r20, 0x01 ; 1
+ 7ec: 99 f0 breq .+38 ; 0x814 <checkTurn+0xba>
+ 7ee: 48 30 cpi r20, 0x08 ; 8
+ 7f0: 39 f4 brne .+14 ; 0x800 <checkTurn+0xa6>
+ 7f2: 10 c0 rjmp .+32 ; 0x814 <checkTurn+0xba>
+ 7f4: 54 30 cpi r21, 0x04 ; 4
+ 7f6: 21 f4 brne .+8 ; 0x800 <checkTurn+0xa6>
+ 7f8: 42 30 cpi r20, 0x02 ; 2
+ 7fa: 61 f0 breq .+24 ; 0x814 <checkTurn+0xba>
+ 7fc: 47 30 cpi r20, 0x07 ; 7
+ 7fe: 51 f0 breq .+20 ; 0x814 <checkTurn+0xba>
+ 800: 8c 91 ld r24, X
+ 802: 28 23 and r18, r24
+ 804: 39 f4 brne .+14 ; 0x814 <checkTurn+0xba>
+ 806: 31 96 adiw r30, 0x01 ; 1
+ 808: 11 96 adiw r26, 0x01 ; 1
+ 80a: ac 17 cp r26, r28
+ 80c: bd 07 cpc r27, r29
+ 80e: a9 f6 brne .-86 ; 0x7ba <checkTurn+0x60>
+ 810: 80 e0 ldi r24, 0x00 ; 0
+ 812: 01 c0 rjmp .+2 ; 0x816 <checkTurn+0xbc>
+ 814: 81 e0 ldi r24, 0x01 ; 1
+ 816: df 91 pop r29
+ 818: cf 91 pop r28
+ 81a: 1f 91 pop r17
+ 81c: 0f 91 pop r16
+ 81e: 08 95 ret
+
+00000820 <checkFullLine>:
+ 820: cf 92 push r12
+ 822: df 92 push r13
+ 824: ef 92 push r14
+ 826: ff 92 push r15
+ 828: 0f 93 push r16
+ 82a: 1f 93 push r17
+ 82c: df 93 push r29
+ 82e: cf 93 push r28
+ 830: 00 d0 rcall .+0 ; 0x832 <checkFullLine+0x12>
+ 832: cd b7 in r28, 0x3d ; 61
+ 834: de b7 in r29, 0x3e ; 62
+ 836: 80 91 8c 01 lds r24, 0x018C
+ 83a: b7 e0 ldi r27, 0x07 ; 7
+ 83c: eb 2e mov r14, r27
+ 83e: e8 22 and r14, r24
+ 840: e3 94 inc r14
+ 842: 00 e0 ldi r16, 0x00 ; 0
+ 844: 10 e0 ldi r17, 0x00 ; 0
+ 846: 86 95 lsr r24
+ 848: 86 95 lsr r24
+ 84a: 86 95 lsr r24
+ 84c: c8 2e mov r12, r24
+ 84e: c3 94 inc r12
+ 850: d0 2e mov r13, r16
+ 852: 80 91 8c 01 lds r24, 0x018C
+ 856: f8 01 movw r30, r16
+ 858: e8 0f add r30, r24
+ 85a: f1 1d adc r31, r1
+ 85c: e8 30 cpi r30, 0x08 ; 8
+ 85e: f1 05 cpc r31, r1
+ 860: 0c f0 brlt .+2 ; 0x864 <checkFullLine+0x44>
+ 862: 6b c0 rjmp .+214 ; 0x93a <checkFullLine+0x11a>
+ 864: ee 56 subi r30, 0x6E ; 110
+ 866: fe 4f sbci r31, 0xFE ; 254
+ 868: 80 81 ld r24, Z
+ 86a: 8f 3f cpi r24, 0xFF ; 255
+ 86c: 09 f0 breq .+2 ; 0x870 <checkFullLine+0x50>
+ 86e: 65 c0 rjmp .+202 ; 0x93a <checkFullLine+0x11a>
+ 870: ff 24 eor r15, r15
+ 872: 8c 2d mov r24, r12
+ 874: 6e 2d mov r22, r14
+ 876: 40 e0 ldi r20, 0x00 ; 0
+ 878: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 87c: 28 ee ldi r18, 0xE8 ; 232
+ 87e: 33 e0 ldi r19, 0x03 ; 3
+ 880: 1a 82 std Y+2, r1 ; 0x02
+ 882: 19 82 std Y+1, r1 ; 0x01
+ 884: 05 c0 rjmp .+10 ; 0x890 <checkFullLine+0x70>
+ 886: 89 81 ldd r24, Y+1 ; 0x01
+ 888: 9a 81 ldd r25, Y+2 ; 0x02
+ 88a: 01 96 adiw r24, 0x01 ; 1
+ 88c: 9a 83 std Y+2, r25 ; 0x02
+ 88e: 89 83 std Y+1, r24 ; 0x01
+ 890: 89 81 ldd r24, Y+1 ; 0x01
+ 892: 9a 81 ldd r25, Y+2 ; 0x02
+ 894: 8b 35 cpi r24, 0x5B ; 91
+ 896: 91 05 cpc r25, r1
+ 898: b1 f7 brne .-20 ; 0x886 <checkFullLine+0x66>
+ 89a: 21 50 subi r18, 0x01 ; 1
+ 89c: 30 40 sbci r19, 0x00 ; 0
+ 89e: 81 f7 brne .-32 ; 0x880 <checkFullLine+0x60>
+ 8a0: 8c 2d mov r24, r12
+ 8a2: 6e 2d mov r22, r14
+ 8a4: 4f ef ldi r20, 0xFF ; 255
+ 8a6: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 8aa: 28 ee ldi r18, 0xE8 ; 232
+ 8ac: 33 e0 ldi r19, 0x03 ; 3
+ 8ae: 1a 82 std Y+2, r1 ; 0x02
+ 8b0: 19 82 std Y+1, r1 ; 0x01
+ 8b2: 05 c0 rjmp .+10 ; 0x8be <checkFullLine+0x9e>
+ 8b4: 89 81 ldd r24, Y+1 ; 0x01
+ 8b6: 9a 81 ldd r25, Y+2 ; 0x02
+ 8b8: 01 96 adiw r24, 0x01 ; 1
+ 8ba: 9a 83 std Y+2, r25 ; 0x02
+ 8bc: 89 83 std Y+1, r24 ; 0x01
+ 8be: 89 81 ldd r24, Y+1 ; 0x01
+ 8c0: 9a 81 ldd r25, Y+2 ; 0x02
+ 8c2: 8b 35 cpi r24, 0x5B ; 91
+ 8c4: 91 05 cpc r25, r1
+ 8c6: b1 f7 brne .-20 ; 0x8b4 <checkFullLine+0x94>
+ 8c8: 21 50 subi r18, 0x01 ; 1
+ 8ca: 30 40 sbci r19, 0x00 ; 0
+ 8cc: 81 f7 brne .-32 ; 0x8ae <checkFullLine+0x8e>
+ 8ce: f3 94 inc r15
+ 8d0: 83 e0 ldi r24, 0x03 ; 3
+ 8d2: f8 16 cp r15, r24
+ 8d4: 71 f6 brne .-100 ; 0x872 <checkFullLine+0x52>
+ 8d6: 90 91 8c 01 lds r25, 0x018C
+ 8da: 9d 0d add r25, r13
+ 8dc: 08 c0 rjmp .+16 ; 0x8ee <checkFullLine+0xce>
+ 8de: e9 2f mov r30, r25
+ 8e0: f0 e0 ldi r31, 0x00 ; 0
+ 8e2: ee 56 subi r30, 0x6E ; 110
+ 8e4: fe 4f sbci r31, 0xFE ; 254
+ 8e6: 82 91 ld r24, -Z
+ 8e8: 31 96 adiw r30, 0x01 ; 1
+ 8ea: 80 83 st Z, r24
+ 8ec: 91 50 subi r25, 0x01 ; 1
+ 8ee: 99 23 and r25, r25
+ 8f0: b1 f7 brne .-20 ; 0x8de <checkFullLine+0xbe>
+ 8f2: 0e 94 39 01 call 0x272 ; 0x272 <bleepBleepSound>
+ 8f6: e0 e0 ldi r30, 0x00 ; 0
+ 8f8: f1 e0 ldi r31, 0x01 ; 1
+ 8fa: 07 c0 rjmp .+14 ; 0x90a <checkFullLine+0xea>
+ 8fc: 80 91 c0 00 lds r24, 0x00C0
+ 900: 85 ff sbrs r24, 5
+ 902: fc cf rjmp .-8 ; 0x8fc <checkFullLine+0xdc>
+ 904: 90 93 c6 00 sts 0x00C6, r25
+ 908: 31 96 adiw r30, 0x01 ; 1
+ 90a: 90 81 ld r25, Z
+ 90c: 99 23 and r25, r25
+ 90e: b1 f7 brne .-20 ; 0x8fc <checkFullLine+0xdc>
+ 910: 80 91 86 01 lds r24, 0x0186
+ 914: 8f 5f subi r24, 0xFF ; 255
+ 916: 80 93 86 01 sts 0x0186, r24
+ 91a: 81 50 subi r24, 0x01 ; 1
+ 91c: 0e 94 9c 00 call 0x138 ; 0x138 <transmit_4digit_USART0>
+ 920: e8 e0 ldi r30, 0x08 ; 8
+ 922: f1 e0 ldi r31, 0x01 ; 1
+ 924: 07 c0 rjmp .+14 ; 0x934 <checkFullLine+0x114>
+ 926: 80 91 c0 00 lds r24, 0x00C0
+ 92a: 85 ff sbrs r24, 5
+ 92c: fc cf rjmp .-8 ; 0x926 <checkFullLine+0x106>
+ 92e: 90 93 c6 00 sts 0x00C6, r25
+ 932: 31 96 adiw r30, 0x01 ; 1
+ 934: 90 81 ld r25, Z
+ 936: 99 23 and r25, r25
+ 938: b1 f7 brne .-20 ; 0x926 <checkFullLine+0x106>
+ 93a: 0f 5f subi r16, 0xFF ; 255
+ 93c: 1f 4f sbci r17, 0xFF ; 255
+ 93e: e3 94 inc r14
+ 940: 04 30 cpi r16, 0x04 ; 4
+ 942: 11 05 cpc r17, r1
+ 944: 09 f0 breq .+2 ; 0x948 <checkFullLine+0x128>
+ 946: 84 cf rjmp .-248 ; 0x850 <checkFullLine+0x30>
+ 948: 0f 90 pop r0
+ 94a: 0f 90 pop r0
+ 94c: cf 91 pop r28
+ 94e: df 91 pop r29
+ 950: 1f 91 pop r17
+ 952: 0f 91 pop r16
+ 954: ff 90 pop r15
+ 956: ef 90 pop r14
+ 958: df 90 pop r13
+ 95a: cf 90 pop r12
+ 95c: 08 95 ret
+
+0000095e <gameOver>:
+ 95e: af 92 push r10
+ 960: bf 92 push r11
+ 962: cf 92 push r12
+ 964: df 92 push r13
+ 966: ff 92 push r15
+ 968: 0f 93 push r16
+ 96a: 1f 93 push r17
+ 96c: df 93 push r29
+ 96e: cf 93 push r28
+ 970: 00 d0 rcall .+0 ; 0x972 <gameOver+0x14>
+ 972: 00 d0 rcall .+0 ; 0x974 <gameOver+0x16>
+ 974: 0f 92 push r0
+ 976: cd b7 in r28, 0x3d ; 61
+ 978: de b7 in r29, 0x3e ; 62
+ 97a: de 01 movw r26, r28
+ 97c: 13 96 adiw r26, 0x03 ; 3
+ 97e: e7 e8 ldi r30, 0x87 ; 135
+ 980: f1 e0 ldi r31, 0x01 ; 1
+ 982: 83 e0 ldi r24, 0x03 ; 3
+ 984: 01 90 ld r0, Z+
+ 986: 0d 92 st X+, r0
+ 988: 81 50 subi r24, 0x01 ; 1
+ 98a: e1 f7 brne .-8 ; 0x984 <gameOver+0x26>
+ 98c: 10 e0 ldi r17, 0x00 ; 0
+ 98e: 1f 5f subi r17, 0xFF ; 255
+ 990: 81 e0 ldi r24, 0x01 ; 1
+ 992: 61 2f mov r22, r17
+ 994: 4f ef ldi r20, 0xFF ; 255
+ 996: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 99a: 24 ef ldi r18, 0xF4 ; 244
+ 99c: 31 e0 ldi r19, 0x01 ; 1
+ 99e: 1a 82 std Y+2, r1 ; 0x02
+ 9a0: 19 82 std Y+1, r1 ; 0x01
+ 9a2: 05 c0 rjmp .+10 ; 0x9ae <gameOver+0x50>
+ 9a4: 89 81 ldd r24, Y+1 ; 0x01
+ 9a6: 9a 81 ldd r25, Y+2 ; 0x02
+ 9a8: 01 96 adiw r24, 0x01 ; 1
+ 9aa: 9a 83 std Y+2, r25 ; 0x02
+ 9ac: 89 83 std Y+1, r24 ; 0x01
+ 9ae: 89 81 ldd r24, Y+1 ; 0x01
+ 9b0: 9a 81 ldd r25, Y+2 ; 0x02
+ 9b2: 8b 35 cpi r24, 0x5B ; 91
+ 9b4: 91 05 cpc r25, r1
+ 9b6: b1 f7 brne .-20 ; 0x9a4 <gameOver+0x46>
+ 9b8: 21 50 subi r18, 0x01 ; 1
+ 9ba: 30 40 sbci r19, 0x00 ; 0
+ 9bc: 81 f7 brne .-32 ; 0x99e <gameOver+0x40>
+ 9be: 18 30 cpi r17, 0x08 ; 8
+ 9c0: 31 f7 brne .-52 ; 0x98e <gameOver+0x30>
+ 9c2: 02 e9 ldi r16, 0x92 ; 146
+ 9c4: 11 e0 ldi r17, 0x01 ; 1
+ 9c6: ff 24 eor r15, r15
+ 9c8: f3 94 inc r15
+ 9ca: 81 e0 ldi r24, 0x01 ; 1
+ 9cc: 6f 2d mov r22, r15
+ 9ce: 40 e0 ldi r20, 0x00 ; 0
+ 9d0: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ 9d4: f8 01 movw r30, r16
+ 9d6: 10 82 st Z, r1
+ 9d8: 24 ef ldi r18, 0xF4 ; 244
+ 9da: 31 e0 ldi r19, 0x01 ; 1
+ 9dc: 1a 82 std Y+2, r1 ; 0x02
+ 9de: 19 82 std Y+1, r1 ; 0x01
+ 9e0: 05 c0 rjmp .+10 ; 0x9ec <gameOver+0x8e>
+ 9e2: 89 81 ldd r24, Y+1 ; 0x01
+ 9e4: 9a 81 ldd r25, Y+2 ; 0x02
+ 9e6: 01 96 adiw r24, 0x01 ; 1
+ 9e8: 9a 83 std Y+2, r25 ; 0x02
+ 9ea: 89 83 std Y+1, r24 ; 0x01
+ 9ec: 89 81 ldd r24, Y+1 ; 0x01
+ 9ee: 9a 81 ldd r25, Y+2 ; 0x02
+ 9f0: 8b 35 cpi r24, 0x5B ; 91
+ 9f2: 91 05 cpc r25, r1
+ 9f4: b1 f7 brne .-20 ; 0x9e2 <gameOver+0x84>
+ 9f6: 21 50 subi r18, 0x01 ; 1
+ 9f8: 30 40 sbci r19, 0x00 ; 0
+ 9fa: 81 f7 brne .-32 ; 0x9dc <gameOver+0x7e>
+ 9fc: 0f 5f subi r16, 0xFF ; 255
+ 9fe: 1f 4f sbci r17, 0xFF ; 255
+ a00: f8 e0 ldi r31, 0x08 ; 8
+ a02: ff 16 cp r15, r31
+ a04: 09 f7 brne .-62 ; 0x9c8 <gameOver+0x6a>
+ a06: ff 24 eor r15, r15
+ a08: 13 e0 ldi r17, 0x03 ; 3
+ a0a: a1 2e mov r10, r17
+ a0c: b1 2c mov r11, r1
+ a0e: ac 0e add r10, r28
+ a10: bd 1e adc r11, r29
+ a12: 32 c0 rjmp .+100 ; 0xa78 <gameOver+0x11a>
+ a14: 00 e0 ldi r16, 0x00 ; 0
+ a16: 10 e0 ldi r17, 0x00 ; 0
+ a18: cf 2c mov r12, r15
+ a1a: dd 24 eor r13, r13
+ a1c: 20 2f mov r18, r16
+ a1e: 2f 5f subi r18, 0xFF ; 255
+ a20: c8 01 movw r24, r16
+ a22: 8c 0d add r24, r12
+ a24: 9d 1d adc r25, r13
+ a26: 63 e0 ldi r22, 0x03 ; 3
+ a28: 70 e0 ldi r23, 0x00 ; 0
+ a2a: 0e 94 d2 06 call 0xda4 ; 0xda4 <__divmodhi4>
+ a2e: f5 01 movw r30, r10
+ a30: e8 0f add r30, r24
+ a32: f9 1f adc r31, r25
+ a34: 81 e0 ldi r24, 0x01 ; 1
+ a36: 62 2f mov r22, r18
+ a38: 40 81 ld r20, Z
+ a3a: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ a3e: 0f 5f subi r16, 0xFF ; 255
+ a40: 1f 4f sbci r17, 0xFF ; 255
+ a42: 08 30 cpi r16, 0x08 ; 8
+ a44: 11 05 cpc r17, r1
+ a46: 51 f7 brne .-44 ; 0xa1c <gameOver+0xbe>
+ a48: 81 e0 ldi r24, 0x01 ; 1
+ a4a: 8f 15 cp r24, r15
+ a4c: 10 f4 brcc .+4 ; 0xa52 <gameOver+0xf4>
+ a4e: ff 24 eor r15, r15
+ a50: 01 c0 rjmp .+2 ; 0xa54 <gameOver+0xf6>
+ a52: f3 94 inc r15
+ a54: 28 ee ldi r18, 0xE8 ; 232
+ a56: 33 e0 ldi r19, 0x03 ; 3
+ a58: 1a 82 std Y+2, r1 ; 0x02
+ a5a: 19 82 std Y+1, r1 ; 0x01
+ a5c: 05 c0 rjmp .+10 ; 0xa68 <gameOver+0x10a>
+ a5e: 89 81 ldd r24, Y+1 ; 0x01
+ a60: 9a 81 ldd r25, Y+2 ; 0x02
+ a62: 01 96 adiw r24, 0x01 ; 1
+ a64: 9a 83 std Y+2, r25 ; 0x02
+ a66: 89 83 std Y+1, r24 ; 0x01
+ a68: 89 81 ldd r24, Y+1 ; 0x01
+ a6a: 9a 81 ldd r25, Y+2 ; 0x02
+ a6c: 8b 35 cpi r24, 0x5B ; 91
+ a6e: 91 05 cpc r25, r1
+ a70: b1 f7 brne .-20 ; 0xa5e <gameOver+0x100>
+ a72: 21 50 subi r18, 0x01 ; 1
+ a74: 30 40 sbci r19, 0x00 ; 0
+ a76: 81 f7 brne .-32 ; 0xa58 <gameOver+0xfa>
+ a78: 80 91 9d 01 lds r24, 0x019D
+ a7c: 88 23 and r24, r24
+ a7e: 51 f2 breq .-108 ; 0xa14 <gameOver+0xb6>
+ a80: 81 e0 ldi r24, 0x01 ; 1
+ a82: 80 93 86 01 sts 0x0186, r24
+ a86: e2 e1 ldi r30, 0x12 ; 18
+ a88: f1 e0 ldi r31, 0x01 ; 1
+ a8a: 07 c0 rjmp .+14 ; 0xa9a <gameOver+0x13c>
+ a8c: 80 91 c0 00 lds r24, 0x00C0
+ a90: 85 ff sbrs r24, 5
+ a92: fc cf rjmp .-8 ; 0xa8c <gameOver+0x12e>
+ a94: 90 93 c6 00 sts 0x00C6, r25
+ a98: 31 96 adiw r30, 0x01 ; 1
+ a9a: 90 81 ld r25, Z
+ a9c: 99 23 and r25, r25
+ a9e: b1 f7 brne .-20 ; 0xa8c <gameOver+0x12e>
+ aa0: 80 91 8d 01 lds r24, 0x018D
+ aa4: 90 91 8e 01 lds r25, 0x018E
+ aa8: 65 e0 ldi r22, 0x05 ; 5
+ aaa: 70 e0 ldi r23, 0x00 ; 0
+ aac: 0e 94 be 06 call 0xd7c ; 0xd7c <__udivmodhi4>
+ ab0: 80 93 84 01 sts 0x0184, r24
+ ab4: 10 92 8b 01 sts 0x018B, r1
+ ab8: 0f 90 pop r0
+ aba: 0f 90 pop r0
+ abc: 0f 90 pop r0
+ abe: 0f 90 pop r0
+ ac0: 0f 90 pop r0
+ ac2: cf 91 pop r28
+ ac4: df 91 pop r29
+ ac6: 1f 91 pop r17
+ ac8: 0f 91 pop r16
+ aca: ff 90 pop r15
+ acc: df 90 pop r13
+ ace: cf 90 pop r12
+ ad0: bf 90 pop r11
+ ad2: af 90 pop r10
+ ad4: 08 95 ret
+
+00000ad6 <stopFigure>:
+ ad6: 1f 93 push r17
+ ad8: cf 93 push r28
+ ada: df 93 push r29
+ adc: 10 91 85 01 lds r17, 0x0185
+ ae0: 81 2f mov r24, r17
+ ae2: 90 e0 ldi r25, 0x00 ; 0
+ ae4: 44 e0 ldi r20, 0x04 ; 4
+ ae6: 50 e0 ldi r21, 0x00 ; 0
+ ae8: 48 1b sub r20, r24
+ aea: 59 0b sbc r21, r25
+ aec: ec 01 movw r28, r24
+ aee: 24 97 sbiw r28, 0x04 ; 4
+ af0: 80 91 8c 01 lds r24, 0x018C
+ af4: 30 91 8b 01 lds r19, 0x018B
+ af8: 20 91 84 01 lds r18, 0x0184
+ afc: e2 2f mov r30, r18
+ afe: f0 e0 ldi r31, 0x00 ; 0
+ b00: ee 0f add r30, r30
+ b02: ff 1f adc r31, r31
+ b04: ee 0f add r30, r30
+ b06: ff 1f adc r31, r31
+ b08: e3 0f add r30, r19
+ b0a: f1 1d adc r31, r1
+ b0c: ee 0f add r30, r30
+ b0e: ff 1f adc r31, r31
+ b10: ee 0f add r30, r30
+ b12: ff 1f adc r31, r31
+ b14: ec 5c subi r30, 0xCC ; 204
+ b16: fe 4f sbci r31, 0xFE ; 254
+ b18: 90 e0 ldi r25, 0x00 ; 0
+ b1a: dc 01 movw r26, r24
+ b1c: ae 56 subi r26, 0x6E ; 110
+ b1e: be 4f sbci r27, 0xFE ; 254
+ b20: bc 01 movw r22, r24
+ b22: 6a 56 subi r22, 0x6A ; 106
+ b24: 7e 4f sbci r23, 0xFE ; 254
+ b26: 80 81 ld r24, Z
+ b28: 28 2f mov r18, r24
+ b2a: 30 e0 ldi r19, 0x00 ; 0
+ b2c: 15 30 cpi r17, 0x05 ; 5
+ b2e: 38 f4 brcc .+14 ; 0xb3e <stopFigure+0x68>
+ b30: 04 2e mov r0, r20
+ b32: 02 c0 rjmp .+4 ; 0xb38 <stopFigure+0x62>
+ b34: 22 0f add r18, r18
+ b36: 33 1f adc r19, r19
+ b38: 0a 94 dec r0
+ b3a: e2 f7 brpl .-8 ; 0xb34 <stopFigure+0x5e>
+ b3c: 06 c0 rjmp .+12 ; 0xb4a <stopFigure+0x74>
+ b3e: 0c 2e mov r0, r28
+ b40: 02 c0 rjmp .+4 ; 0xb46 <stopFigure+0x70>
+ b42: 35 95 asr r19
+ b44: 27 95 ror r18
+ b46: 0a 94 dec r0
+ b48: e2 f7 brpl .-8 ; 0xb42 <stopFigure+0x6c>
+ b4a: 8c 91 ld r24, X
+ b4c: 82 2b or r24, r18
+ b4e: 8d 93 st X+, r24
+ b50: 31 96 adiw r30, 0x01 ; 1
+ b52: a6 17 cp r26, r22
+ b54: b7 07 cpc r27, r23
+ b56: 39 f7 brne .-50 ; 0xb26 <stopFigure+0x50>
+ b58: 0e 94 10 04 call 0x820 ; 0x820 <checkFullLine>
+ b5c: 10 92 8c 01 sts 0x018C, r1
+ b60: 10 92 8b 01 sts 0x018B, r1
+ b64: 84 e0 ldi r24, 0x04 ; 4
+ b66: 80 93 85 01 sts 0x0185, r24
+ b6a: 80 91 91 01 lds r24, 0x0191
+ b6e: 80 93 84 01 sts 0x0184, r24
+ b72: 0e 94 76 02 call 0x4ec ; 0x4ec <checkStart>
+ b76: 81 30 cpi r24, 0x01 ; 1
+ b78: 19 f0 breq .+6 ; 0xb80 <stopFigure+0xaa>
+ b7a: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ b7e: 02 c0 rjmp .+4 ; 0xb84 <stopFigure+0xae>
+ b80: 0e 94 af 04 call 0x95e ; 0x95e <gameOver>
+ b84: df 91 pop r29
+ b86: cf 91 pop r28
+ b88: 1f 91 pop r17
+ b8a: 08 95 ret
+
+00000b8c <main>:
+ b8c: 1f 93 push r17
+ b8e: 23 9a sbi 0x04, 3 ; 4
+ b90: 25 9a sbi 0x04, 5 ; 4
+ b92: 24 9a sbi 0x04, 4 ; 4
+ b94: 22 9a sbi 0x04, 2 ; 4
+ b96: 81 e0 ldi r24, 0x01 ; 1
+ b98: 60 91 31 01 lds r22, 0x0131
+ b9c: 47 e0 ldi r20, 0x07 ; 7
+ b9e: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ ba2: 81 e0 ldi r24, 0x01 ; 1
+ ba4: 60 91 2f 01 lds r22, 0x012F
+ ba8: 40 e0 ldi r20, 0x00 ; 0
+ baa: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bae: 81 e0 ldi r24, 0x01 ; 1
+ bb0: 60 91 32 01 lds r22, 0x0132
+ bb4: 41 e0 ldi r20, 0x01 ; 1
+ bb6: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bba: 81 e0 ldi r24, 0x01 ; 1
+ bbc: 60 91 33 01 lds r22, 0x0133
+ bc0: 40 e0 ldi r20, 0x00 ; 0
+ bc2: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bc6: 10 e0 ldi r17, 0x00 ; 0
+ bc8: 1f 5f subi r17, 0xFF ; 255
+ bca: 81 e0 ldi r24, 0x01 ; 1
+ bcc: 61 2f mov r22, r17
+ bce: 40 e0 ldi r20, 0x00 ; 0
+ bd0: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ bd4: 18 30 cpi r17, 0x08 ; 8
+ bd6: c1 f7 brne .-16 ; 0xbc8 <main+0x3c>
+ bd8: 81 e0 ldi r24, 0x01 ; 1
+ bda: 60 91 30 01 lds r22, 0x0130
+ bde: 4f e0 ldi r20, 0x0F ; 15
+ be0: 0e 94 8c 01 call 0x318 ; 0x318 <maxOne>
+ be4: 87 e6 ldi r24, 0x67 ; 103
+ be6: 90 e0 ldi r25, 0x00 ; 0
+ be8: 90 93 c5 00 sts 0x00C5, r25
+ bec: 80 93 c4 00 sts 0x00C4, r24
+ bf0: 86 e0 ldi r24, 0x06 ; 6
+ bf2: 80 93 c2 00 sts 0x00C2, r24
+ bf6: 80 91 c1 00 lds r24, 0x00C1
+ bfa: 88 61 ori r24, 0x18 ; 24
+ bfc: 80 93 c1 00 sts 0x00C1, r24
+ c00: 80 91 c1 00 lds r24, 0x00C1
+ c04: 80 68 ori r24, 0x80 ; 128
+ c06: 80 93 c1 00 sts 0x00C1, r24
+ c0a: 78 94 sei
+ c0c: 8f ef ldi r24, 0xFF ; 255
+ c0e: 80 93 9a 01 sts 0x019A, r24
+ c12: 80 91 8d 01 lds r24, 0x018D
+ c16: 83 70 andi r24, 0x03 ; 3
+ c18: 80 93 84 01 sts 0x0184, r24
+ c1c: e2 e1 ldi r30, 0x12 ; 18
+ c1e: f1 e0 ldi r31, 0x01 ; 1
+ c20: 07 c0 rjmp .+14 ; 0xc30 <main+0xa4>
+ c22: 80 91 c0 00 lds r24, 0x00C0
+ c26: 85 ff sbrs r24, 5
+ c28: fc cf rjmp .-8 ; 0xc22 <main+0x96>
+ c2a: 90 93 c6 00 sts 0x00C6, r25
+ c2e: 31 96 adiw r30, 0x01 ; 1
+ c30: 90 81 ld r25, Z
+ c32: 99 23 and r25, r25
+ c34: b1 f7 brne .-20 ; 0xc22 <main+0x96>
+ c36: 60 91 8d 01 lds r22, 0x018D
+ c3a: 70 91 8e 01 lds r23, 0x018E
+ c3e: 80 91 8f 01 lds r24, 0x018F
+ c42: 90 91 90 01 lds r25, 0x0190
+ c46: 20 e2 ldi r18, 0x20 ; 32
+ c48: 3e e4 ldi r19, 0x4E ; 78
+ c4a: 40 e0 ldi r20, 0x00 ; 0
+ c4c: 50 e0 ldi r21, 0x00 ; 0
+ c4e: 0e 94 e5 06 call 0xdca ; 0xdca <__udivmodsi4>
+ c52: 61 15 cp r22, r1
+ c54: 71 05 cpc r23, r1
+ c56: 81 05 cpc r24, r1
+ c58: 91 05 cpc r25, r1
+ c5a: 09 f5 brne .+66 ; 0xc9e <main+0x112>
+ c5c: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ c60: 0e 94 2d 02 call 0x45a ; 0x45a <checkDown>
+ c64: 81 30 cpi r24, 0x01 ; 1
+ c66: 31 f0 breq .+12 ; 0xc74 <main+0xe8>
+ c68: 80 91 8c 01 lds r24, 0x018C
+ c6c: 8f 5f subi r24, 0xFF ; 255
+ c6e: 80 93 8c 01 sts 0x018C, r24
+ c72: 15 c0 rjmp .+42 ; 0xc9e <main+0x112>
+ c74: 90 91 9b 01 lds r25, 0x019B
+ c78: 80 91 91 01 lds r24, 0x0191
+ c7c: 98 17 cp r25, r24
+ c7e: 19 f4 brne .+6 ; 0xc86 <main+0xfa>
+ c80: 9f 5f subi r25, 0xFF ; 255
+ c82: 90 93 91 01 sts 0x0191, r25
+ c86: 80 91 91 01 lds r24, 0x0191
+ c8a: 86 30 cpi r24, 0x06 ; 6
+ c8c: 10 f0 brcs .+4 ; 0xc92 <main+0x106>
+ c8e: 10 92 91 01 sts 0x0191, r1
+ c92: 80 91 91 01 lds r24, 0x0191
+ c96: 80 93 9b 01 sts 0x019B, r24
+ c9a: 0e 94 6b 05 call 0xad6 ; 0xad6 <stopFigure>
+ c9e: 20 91 8d 01 lds r18, 0x018D
+ ca2: 30 91 8e 01 lds r19, 0x018E
+ ca6: 40 91 8f 01 lds r20, 0x018F
+ caa: 50 91 90 01 lds r21, 0x0190
+ cae: 2f 5f subi r18, 0xFF ; 255
+ cb0: 3f 4f sbci r19, 0xFF ; 255
+ cb2: 4f 4f sbci r20, 0xFF ; 255
+ cb4: 5f 4f sbci r21, 0xFF ; 255
+ cb6: 20 93 8d 01 sts 0x018D, r18
+ cba: 30 93 8e 01 sts 0x018E, r19
+ cbe: 40 93 8f 01 sts 0x018F, r20
+ cc2: 50 93 90 01 sts 0x0190, r21
+ cc6: 90 91 9d 01 lds r25, 0x019D
+ cca: 80 91 9c 01 lds r24, 0x019C
+ cce: 98 17 cp r25, r24
+ cd0: 09 f4 brne .+2 ; 0xcd4 <main+0x148>
+ cd2: b1 cf rjmp .-158 ; 0xc36 <main+0xaa>
+ cd4: 80 91 9d 01 lds r24, 0x019D
+ cd8: 80 93 9c 01 sts 0x019C, r24
+ cdc: 82 2f mov r24, r18
+ cde: 83 70 andi r24, 0x03 ; 3
+ ce0: 80 93 91 01 sts 0x0191, r24
+ ce4: 80 91 9d 01 lds r24, 0x019D
+ ce8: 83 34 cpi r24, 0x43 ; 67
+ cea: 69 f4 brne .+26 ; 0xd06 <main+0x17a>
+ cec: 0e 94 36 03 call 0x66c ; 0x66c <checkRight>
+ cf0: 81 30 cpi r24, 0x01 ; 1
+ cf2: 29 f0 breq .+10 ; 0xcfe <main+0x172>
+ cf4: 80 91 85 01 lds r24, 0x0185
+ cf8: 8f 5f subi r24, 0xFF ; 255
+ cfa: 80 93 85 01 sts 0x0185, r24
+ cfe: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d02: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d06: 80 91 9d 01 lds r24, 0x019D
+ d0a: 84 34 cpi r24, 0x44 ; 68
+ d0c: 69 f4 brne .+26 ; 0xd28 <main+0x19c>
+ d0e: 0e 94 bf 02 call 0x57e ; 0x57e <checkLeft>
+ d12: 81 30 cpi r24, 0x01 ; 1
+ d14: 29 f0 breq .+10 ; 0xd20 <main+0x194>
+ d16: 80 91 85 01 lds r24, 0x0185
+ d1a: 81 50 subi r24, 0x01 ; 1
+ d1c: 80 93 85 01 sts 0x0185, r24
+ d20: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d24: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d28: 80 91 9d 01 lds r24, 0x019D
+ d2c: 82 34 cpi r24, 0x42 ; 66
+ d2e: 69 f4 brne .+26 ; 0xd4a <main+0x1be>
+ d30: 0e 94 2d 02 call 0x45a ; 0x45a <checkDown>
+ d34: 81 30 cpi r24, 0x01 ; 1
+ d36: 29 f0 breq .+10 ; 0xd42 <main+0x1b6>
+ d38: 80 91 8c 01 lds r24, 0x018C
+ d3c: 8f 5f subi r24, 0xFF ; 255
+ d3e: 80 93 8c 01 sts 0x018C, r24
+ d42: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d46: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d4a: 80 91 9d 01 lds r24, 0x019D
+ d4e: 81 34 cpi r24, 0x41 ; 65
+ d50: 91 f4 brne .+36 ; 0xd76 <main+0x1ea>
+ d52: 0e 94 ad 03 call 0x75a ; 0x75a <checkTurn>
+ d56: 81 30 cpi r24, 0x01 ; 1
+ d58: 71 f0 breq .+28 ; 0xd76 <main+0x1ea>
+ d5a: 80 91 8b 01 lds r24, 0x018B
+ d5e: 83 30 cpi r24, 0x03 ; 3
+ d60: 20 f4 brcc .+8 ; 0xd6a <main+0x1de>
+ d62: 8f 5f subi r24, 0xFF ; 255
+ d64: 80 93 8b 01 sts 0x018B, r24
+ d68: 02 c0 rjmp .+4 ; 0xd6e <main+0x1e2>
+ d6a: 10 92 8b 01 sts 0x018B, r1
+ d6e: 0e 94 d3 01 call 0x3a6 ; 0x3a6 <redrawScreen>
+ d72: 0e 94 05 01 call 0x20a ; 0x20a <beep>
+ d76: 10 92 9d 01 sts 0x019D, r1
+ d7a: 5d cf rjmp .-326 ; 0xc36 <main+0xaa>
+
+00000d7c <__udivmodhi4>:
+ d7c: aa 1b sub r26, r26
+ d7e: bb 1b sub r27, r27
+ d80: 51 e1 ldi r21, 0x11 ; 17
+ d82: 07 c0 rjmp .+14 ; 0xd92 <__udivmodhi4_ep>
+
+00000d84 <__udivmodhi4_loop>:
+ d84: aa 1f adc r26, r26
+ d86: bb 1f adc r27, r27
+ d88: a6 17 cp r26, r22
+ d8a: b7 07 cpc r27, r23
+ d8c: 10 f0 brcs .+4 ; 0xd92 <__udivmodhi4_ep>
+ d8e: a6 1b sub r26, r22
+ d90: b7 0b sbc r27, r23
+
+00000d92 <__udivmodhi4_ep>:
+ d92: 88 1f adc r24, r24
+ d94: 99 1f adc r25, r25
+ d96: 5a 95 dec r21
+ d98: a9 f7 brne .-22 ; 0xd84 <__udivmodhi4_loop>
+ d9a: 80 95 com r24
+ d9c: 90 95 com r25
+ d9e: bc 01 movw r22, r24
+ da0: cd 01 movw r24, r26
+ da2: 08 95 ret
+
+00000da4 <__divmodhi4>:
+ da4: 97 fb bst r25, 7
+ da6: 09 2e mov r0, r25
+ da8: 07 26 eor r0, r23
+ daa: 0a d0 rcall .+20 ; 0xdc0 <__divmodhi4_neg1>
+ dac: 77 fd sbrc r23, 7
+ dae: 04 d0 rcall .+8 ; 0xdb8 <__divmodhi4_neg2>
+ db0: e5 df rcall .-54 ; 0xd7c <__udivmodhi4>
+ db2: 06 d0 rcall .+12 ; 0xdc0 <__divmodhi4_neg1>
+ db4: 00 20 and r0, r0
+ db6: 1a f4 brpl .+6 ; 0xdbe <__divmodhi4_exit>
+
+00000db8 <__divmodhi4_neg2>:
+ db8: 70 95 com r23
+ dba: 61 95 neg r22
+ dbc: 7f 4f sbci r23, 0xFF ; 255
+
+00000dbe <__divmodhi4_exit>:
+ dbe: 08 95 ret
+
+00000dc0 <__divmodhi4_neg1>:
+ dc0: f6 f7 brtc .-4 ; 0xdbe <__divmodhi4_exit>
+ dc2: 90 95 com r25
+ dc4: 81 95 neg r24
+ dc6: 9f 4f sbci r25, 0xFF ; 255
+ dc8: 08 95 ret
+
+00000dca <__udivmodsi4>:
+ dca: a1 e2 ldi r26, 0x21 ; 33
+ dcc: 1a 2e mov r1, r26
+ dce: aa 1b sub r26, r26
+ dd0: bb 1b sub r27, r27
+ dd2: fd 01 movw r30, r26
+ dd4: 0d c0 rjmp .+26 ; 0xdf0 <__udivmodsi4_ep>
+
+00000dd6 <__udivmodsi4_loop>:
+ dd6: aa 1f adc r26, r26
+ dd8: bb 1f adc r27, r27
+ dda: ee 1f adc r30, r30
+ ddc: ff 1f adc r31, r31
+ dde: a2 17 cp r26, r18
+ de0: b3 07 cpc r27, r19
+ de2: e4 07 cpc r30, r20
+ de4: f5 07 cpc r31, r21
+ de6: 20 f0 brcs .+8 ; 0xdf0 <__udivmodsi4_ep>
+ de8: a2 1b sub r26, r18
+ dea: b3 0b sbc r27, r19
+ dec: e4 0b sbc r30, r20
+ dee: f5 0b sbc r31, r21
+
+00000df0 <__udivmodsi4_ep>:
+ df0: 66 1f adc r22, r22
+ df2: 77 1f adc r23, r23
+ df4: 88 1f adc r24, r24
+ df6: 99 1f adc r25, r25
+ df8: 1a 94 dec r1
+ dfa: 69 f7 brne .-38 ; 0xdd6 <__udivmodsi4_loop>
+ dfc: 60 95 com r22
+ dfe: 70 95 com r23
+ e00: 80 95 com r24
+ e02: 90 95 com r25
+ e04: 9b 01 movw r18, r22
+ e06: ac 01 movw r20, r24
+ e08: bd 01 movw r22, r26
+ e0a: cf 01 movw r24, r30
+ e0c: 08 95 ret
+
+00000e0e <_exit>:
+ e0e: f8 94 cli
+
+00000e10 <__stop_program>:
+ e10: ff cf rjmp .-2 ; 0xe10 <__stop_program>
--- /dev/null
+Archive member included because of file (symbol)
+
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ tetris.o (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ tetris.o (__divmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ tetris.o (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o (exit)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ tetris.o (__do_copy_data)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ tetris.o (__do_clear_bss)
+
+Allocating common symbols
+Common symbol size file
+
+screen 0x9 tetris.o
+prewRandomDigit 0x1 tetris.o
+oldu 0x1 tetris.o
+u 0x1 tetris.o
+
+Memory Configuration
+
+Name Origin Length Attributes
+text 0x00000000 0x00020000 xr
+data 0x00800060 0x0000ffa0 rw !x
+eeprom 0x00810000 0x00010000 rw !x
+fuse 0x00820000 0x00000400 rw !x
+lock 0x00830000 0x00000400 rw !x
+signature 0x00840000 0x00000400 rw !x
+*default* 0x00000000 0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+LOAD tetris.o
+LOAD /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text 0x00000000 0xe12
+ *(.vectors)
+ .vectors 0x00000000 0x68 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ 0x00000000 __vectors
+ 0x00000000 __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+ 0x00000068 . = ALIGN (0x2)
+ 0x00000068 __trampolines_start = .
+ *(.trampolines)
+ .trampolines 0x00000068 0x0 linker stubs
+ *(.trampolines*)
+ 0x00000068 __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+ 0x00000068 __ctors_start = .
+ *(.ctors)
+ 0x00000068 __ctors_end = .
+ 0x00000068 __dtors_start = .
+ *(.dtors)
+ 0x00000068 __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0 0x00000068 0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ 0x00000068 __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2 0x00000068 0xc /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4 0x00000074 0x16 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ 0x00000074 __do_copy_data
+ .init4 0x0000008a 0x10 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ 0x0000008a __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9 0x0000009a 0x8 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ *(.init9)
+ *(.text)
+ .text 0x000000a2 0x4 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ 0x000000a2 __vector_22
+ 0x000000a2 __vector_1
+ 0x000000a2 __vector_24
+ 0x000000a2 __vector_12
+ 0x000000a2 __bad_interrupt
+ 0x000000a2 __vector_6
+ 0x000000a2 __vector_3
+ 0x000000a2 __vector_23
+ 0x000000a2 __vector_25
+ 0x000000a2 __vector_11
+ 0x000000a2 __vector_13
+ 0x000000a2 __vector_17
+ 0x000000a2 __vector_19
+ 0x000000a2 __vector_7
+ 0x000000a2 __vector_5
+ 0x000000a2 __vector_4
+ 0x000000a2 __vector_9
+ 0x000000a2 __vector_2
+ 0x000000a2 __vector_21
+ 0x000000a2 __vector_15
+ 0x000000a2 __vector_8
+ 0x000000a2 __vector_14
+ 0x000000a2 __vector_10
+ 0x000000a2 __vector_16
+ 0x000000a2 __vector_20
+ .text 0x000000a6 0xcd6 tetris.o
+ 0x000000a6 setRXCIE_USART0
+ 0x000000b2 init_USART0
+ 0x000000cc receive_1byte_USART0
+ 0x000000da transmit_1byte_USART0
+ 0x000000ea __vector_18
+ 0x0000011e transmit_str_USART0
+ 0x00000138 transmit_4digit_USART0
+ 0x00000194 delay_ms
+ 0x000001d0 delay_ns
+ 0x0000020a beep
+ 0x00000272 bleepBleepSound
+ 0x000002e4 putByte
+ 0x00000318 maxOne
+ 0x00000372 moveLine
+ 0x000003a6 redrawScreen
+ 0x0000045a checkDown
+ 0x000004ec checkStart
+ 0x0000057e checkLeft
+ 0x0000066c checkRight
+ 0x0000075a checkTurn
+ 0x00000820 checkFullLine
+ 0x0000095e gameOver
+ 0x00000ad6 stopFigure
+ 0x00000b8c main
+ .text 0x00000d7c 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x00000d7c 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x00000d7c 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x00000d7c 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .text 0x00000d7c 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .text 0x00000d7c 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ 0x00000d7c . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc 0x00000d7c 0x28 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00000d7c __udivmodhi4
+ .text.libgcc 0x00000da4 0x26 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ 0x00000da4 __divmodhi4
+ 0x00000da4 _div
+ .text.libgcc 0x00000dca 0x44 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ 0x00000dca __udivmodsi4
+ .text.libgcc 0x00000e0e 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x00000e0e 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x00000e0e 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ 0x00000e0e . = ALIGN (0x2)
+ *(.fini9)
+ .fini9 0x00000e0e 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ 0x00000e0e exit
+ 0x00000e0e _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0 0x00000e0e 0x4 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+ 0x00000e12 _etext = .
+
+.data 0x00800100 0x8a load address 0x00000e12
+ 0x00800100 PROVIDE (__data_start, .)
+ *(.data)
+ .data 0x00800100 0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ .data 0x00800100 0x8a tetris.o
+ 0x00800127 max7219_reg_digit0
+ 0x00800128 max7219_reg_digit1
+ 0x00800129 max7219_reg_digit2
+ 0x0080012a max7219_reg_digit3
+ 0x0080012b max7219_reg_digit4
+ 0x0080012c max7219_reg_digit5
+ 0x0080012d max7219_reg_digit6
+ 0x0080012e max7219_reg_digit7
+ 0x0080012f max7219_reg_decodeMode
+ 0x00800130 max7219_reg_intensity
+ 0x00800131 max7219_reg_scanLimit
+ 0x00800132 max7219_reg_shutdown
+ 0x00800133 max7219_reg_displayTest
+ 0x00800134 figure
+ 0x00800184 currentFigure
+ 0x00800185 currentX
+ 0x00800186 score
+ .data 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .data 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .data 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+ 0x0080018a . = ALIGN (0x2)
+ 0x0080018a _edata = .
+ 0x0080018a PROVIDE (__data_end, .)
+
+.bss 0x0080018a 0x14
+ 0x0080018a PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss 0x0080018a 0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ .bss 0x0080018a 0x8 tetris.o
+ 0x0080018a max7219_reg_noop
+ 0x0080018b currentTurn
+ 0x0080018c currentY
+ 0x0080018d timer
+ 0x00800191 randomDigit
+ .bss 0x00800192 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x00800192 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x00800192 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x00800192 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .bss 0x00800192 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .bss 0x00800192 0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON 0x00800192 0xc tetris.o
+ 0x00800192 screen
+ 0x0080019b prewRandomDigit
+ 0x0080019c oldu
+ 0x0080019d u
+ 0x0080019e PROVIDE (__bss_end, .)
+ 0x00000e12 __data_load_start = LOADADDR (.data)
+ 0x00000e9c __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x0080019e 0x0
+ 0x0080019e PROVIDE (__noinit_start, .)
+ *(.noinit*)
+ 0x0080019e PROVIDE (__noinit_end, .)
+ 0x0080019e _end = .
+ 0x0080019e PROVIDE (__heap_start, .)
+
+.eeprom 0x00810000 0x0
+ *(.eeprom*)
+ 0x00810000 __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab 0x00000000 0x6b4
+ *(.stab)
+ .stab 0x00000000 0x6b4 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+
+.stabstr 0x00000000 0x54
+ *(.stabstr)
+ .stabstr 0x00000000 0x54 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(compiled.elf elf32-avr)
+LOAD linker stubs
--- /dev/null
+#!/bin/bash
+
+# flashing script for Arduino bootloader (working via USB)
+
+CONF="/home/dmitry/Projects/Arduino/arduino-0011/hardware/tools/avrdude.conf"
+DUDE="/home/dmitry/Projects/Arduino/arduino-0011/hardware/tools/avrdude"
+
+sudo $DUDE -C $CONF -p m168 -U flash:w:compiled.hex -c stk500v1 -P /dev/ttyUSB0 -b 19200 -D
+//avrdude -p m168 -P /dev/ttyUSB0 -c stk500v1 -b 19200 -F -u -U flash:w:blink.hex
+
--- /dev/null
+#!/bin/bash
+
+rm -f compiled.hex compiled.lss compiled.eep compiled.elf compiled.map *.d *.o
+
+# -DBOARD=1
+export DEFINES="-mmcu=atmega168 -D F_CPU=4000000UL"
+
+avr-gcc $DEFINES -Wall -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums tetris.o -c tetris.c
+avr-gcc $DEFINES -Wl,-Map=compiled.map tetris.o -o compiled.elf
+
+avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature compiled.elf compiled.hex
+avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex compiled.elf compiled.eep
+avr-objdump -h -S compiled.elf > compiled.lss
+avr-objdump -h -d compiled.elf > compiled.lst
+rm -f *.o
+
+exit
--- /dev/null
+/*
+ * TETRIS for AVR microcontrollers and cascading LED matrix based on MAX7219 driver
+ * Copyright (C) 2010 Dmitry Shalnov [interplaymedium.org]
+ * test it with "screen /dev/ttyUSB0" comand (control by kbd arrows)
+ * created for Interplaymediumâ„¢ AXON project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+// WIRING
+// please change it according to your ARDUINO wiring
+// don't forget to place pull-up resisor between RESET and +5V pins to avoid board reset during UART transfer.
+
+#define DATAIN 3
+#define LOAD 5
+#define CLOCK 4
+#define BEEPER 2
+
+#define INUSE 1 // how many matrix you connect
+#define STARTX 4 // horisontal position od figure strat
+#define RAND_MAX 4
+
+// Some macros that make the code more readable
+
+#define output_low(port,pin) port &= ~(1<<pin)
+#define output_high(port,pin) port |= (1<<pin)
+#define set_input(portdir,pin) portdir &= ~(1<<pin)
+#define set_output(portdir,pin) portdir |= (1<<pin)
+
+#define FOSC 16000000
+#define BAUD 9600
+#define UBRR FOSC/16/BAUD-1
+
+volatile unsigned char u, oldu;
+
+// ------------------------------------------- Set Receive Interrupt Enable -------------------------------------------
+
+void setRXCIE_USART0()
+{
+ UCSR0B |= _BV(RXCIE0);
+}
+
+// -------------------------------------------- Initialize USART0 -----------------------------------------------------
+
+void init_USART0 (unsigned int baud) {
+ UBRR0 = baud; // Set Baudrate
+ UCSR0C = (3<<UCSZ00); // Character Size 8 bit
+ UCSR0B |= _BV(RXEN0) | _BV(TXEN0); // Receiver and Transmitter Enable
+}
+
+// -------------------------------------------- Receive 1 byte Data --------------------------------------------------
+
+unsigned char receive_1byte_USART0 (void) {
+ loop_until_bit_is_set(UCSR0A, RXC0);
+ return UDR0;
+}
+
+// -------------------------------------------- Transmit 1 byte Data --------------------------------------------------
+
+void transmit_1byte_USART0 (unsigned char data) {
+ loop_until_bit_is_set(UCSR0A, UDRE0);
+ UDR0 = data;
+}
+
+// -------------------------------------------- Interrupt catch -------------------------------------------------------
+
+ISR(USART_RX_vect){ // USART RX interrupt
+ volatile unsigned char c;
+ c = UDR0;
+ //transmit_1byte_USART0('w');
+ //output_high(PORTB, LED1);
+ //if (c<'5' && c>'0')
+ u = c;
+}
+
+// --------------------------------------------- Transmit String Data -------------------------------------------------
+
+void transmit_str_USART0 (char *str) {
+ while (*str != 0) {
+ transmit_1byte_USART0(*str);
+ *str++;
+ }
+}
+
+// --------------------------------------------- Transmit Four-Digit Integer ------------------------------------------
+
+void transmit_4digit_USART0 (int num) {
+ unsigned char temp;
+ int digit = 1000;
+
+ while (digit != 0) {
+ temp = num / digit;
+ transmit_1byte_USART0('0'+temp);
+ num -= (digit*temp);
+ digit /= 10;
+ }
+}
+
+// --------------------------------------------- Delays --------------------------------------------------------------
+
+void delay_ms (uint16_t ms) {
+ uint16_t delay_count = FOSC / 17500 * 0.1;
+ volatile uint16_t i;
+ while (ms != 0) {
+ for (i=0; i != delay_count; i++);
+ ms--;
+ }
+}
+
+void delay_ns(uint16_t ms) {
+ uint16_t delay_count = FOSC / 17500 * 0.01;
+ volatile uint16_t i;
+ while (ms != 0) {
+ for (i=0; i != delay_count; i++);
+ ms--;
+ }
+}
+
+// --------------------------------------------- Sounds -------------------------------------------------------------
+
+void beep (){
+ for(uint8_t a=0; a<100; a++){
+ output_high(PORTB, BEEPER);
+ delay_ms(1);
+ output_low(PORTB, BEEPER);
+ delay_ms(1);
+ }
+}
+
+void bleepBleepSound (){
+ uint8_t a, b;
+ for(b=1; b<40; b+=10) for(a=0; a<100; a++){
+ output_high(PORTB, BEEPER);
+ delay_ns(b);
+ output_low(PORTB, BEEPER);
+ delay_ns(b);
+ }
+}
+
+// --------------------------------- LED MATRIX code ---------------------------------------------------------------
+
+// define max7219 registers
+uint8_t max7219_reg_noop = 0x00;
+uint8_t max7219_reg_digit0 = 0x01;
+uint8_t max7219_reg_digit1 = 0x02;
+uint8_t max7219_reg_digit2 = 0x03;
+uint8_t max7219_reg_digit3 = 0x04;
+uint8_t max7219_reg_digit4 = 0x05;
+uint8_t max7219_reg_digit5 = 0x06;
+uint8_t max7219_reg_digit6 = 0x07;
+uint8_t max7219_reg_digit7 = 0x08;
+uint8_t max7219_reg_decodeMode = 0x09;
+uint8_t max7219_reg_intensity = 0x0a;
+uint8_t max7219_reg_scanLimit = 0x0b;
+uint8_t max7219_reg_shutdown = 0x0c;
+uint8_t max7219_reg_displayTest = 0x0f;
+
+
+void putByte(uint8_t data) {
+ uint8_t i = 8;
+ uint8_t mask;
+ while(i > 0) {
+ mask = 0x01 << (i - 1); // get bitmask
+ //digitalWrite( CLOCK, LOW); // tick
+ output_low(PORTB, CLOCK); // tick
+ if (data & mask){ // choose bit
+ //digitalWrite(DATAIN, HIGH);// send 1
+ output_high(PORTB, DATAIN);
+ } else {
+ //digitalWrite(DATAIN, LOW); // send 0
+ output_low(PORTB, DATAIN);
+ }
+ //digitalWrite(CLOCK, HIGH); // tock
+ output_high(PORTB, CLOCK);
+ --i; // move to lesser bit
+ }
+}
+
+void maxOne(uint8_t maxNr, uint8_t reg, uint8_t col) {
+ //maxOne is for adressing different MAX7219's,
+ //whilele having a couple of them cascaded
+ int c = 0;
+ //digitalWrite(load, LOW); // begin
+ output_low(PORTB, LOAD);
+
+ for ( c = INUSE; c > maxNr; c--) {
+ putByte(0); // means no operation
+ putByte(0); // means no operation
+ }
+
+ putByte(reg); // specify register
+ putByte(col);//((data & 0x01) * 256) + data >> 1); // put data
+
+ for ( c = maxNr-1; c >= 1; c--) {
+ putByte(0); // means no operation
+ putByte(0); // means no operation
+ }
+
+ //digitalWrite(load, LOW); // and load da shit
+ output_low(PORTB, LOAD);
+ //digitalWrite(load,HIGH);
+ output_high(PORTB, LOAD);
+}
+
+/*
+void putPixel (uint8_t maxNr, uint8_t x, uint8_t y){
+ //maxOne is for adressing different MAX7219's,
+ //whilele having a couple of them cascaded
+
+ int c = 0;
+ //digitalWrite(load, LOW); // begin
+ output_low(PORTB, LOAD);
+
+ for ( c = INUSE; c > maxNr; c--) {
+ putByte(0); // means no operation
+ putByte(0); // means no operation
+ }
+
+ putByte(y); // specify register
+ putByte(0x01 << (8-x));//((data & 0x01) * 256) + data >> 1); // put data
+
+ for ( c = maxNr-1; c >= 1; c--) {
+ putByte(0); // means no operation
+ putByte(0); // means no operation
+ }
+
+ //digitalWrite(load, LOW); // and load da shit
+ output_low(PORTB, LOAD);
+ //digitalWrite(load,HIGH);
+ output_high(PORTB, LOAD);
+}
+*/
+
+// --------------------------------- Figures ----------------------------------------------------------------------
+
+uint8_t figure[5][4][4] = {
+ {
+ {
+ 0b00011000,
+ 0b00011000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00011000,
+ 0b00011000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00011000,
+ 0b00011000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00011000,
+ 0b00011000,
+ 0b00000000,
+ 0b00000000
+ }
+ },
+ {
+ {
+ 0b00110000,
+ 0b00011000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00110000,
+ 0b00100000,
+ 0b00000000
+ },
+ {
+ 0b00110000,
+ 0b00011000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00110000,
+ 0b00100000,
+ 0b00000000
+ }
+ },
+ {
+ {
+ 0b00000000,
+ 0b00111000,
+ 0b00001000,
+ 0b00000000
+ },
+ {
+ 0b00011000,
+ 0b00010000,
+ 0b00010000,
+ 0b00000000
+ },
+ {
+ 0b00100000,
+ 0b00111000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00010000,
+ 0b00110000,
+ 0b00000000
+ }
+ },
+ {
+ {
+ 0b00010000,
+ 0b00111000,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00110000,
+ 0b00010000,
+ 0b00000000
+ },
+ {
+ 0b00000000,
+ 0b00111000,
+ 0b00010000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00011000,
+ 0b00010000,
+ 0b00000000
+ }
+ },
+ {
+ {
+ 0b00000000,
+ 0b00111100,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00010000,
+ 0b00010000,
+ 0b00010000
+ },
+ {
+ 0b00000000,
+ 0b00111100,
+ 0b00000000,
+ 0b00000000
+ },
+ {
+ 0b00010000,
+ 0b00010000,
+ 0b00010000,
+ 0b00010000
+ }
+ }
+ };
+
+
+// ----------------------------------------- Init variables ------------------------------------------------------------
+
+uint8_t screen[ INUSE*8 + 1 ];
+
+uint8_t currentFigure = 4;
+uint8_t currentTurn = 0;
+uint8_t currentY = 0;
+uint8_t currentX = STARTX;
+uint32_t timer = 0;
+uint8_t randomDigit = 0;
+uint8_t prewRandomDigit;
+uint8_t score = 1;
+
+// ------------------------------------------ Game logic ---------------------------------------------------------------
+
+uint8_t moveLine(uint8_t L, uint8_t X){
+ if (X <= 4 ) L <<= 4 - X; else L >>= X - 4;
+ return L;
+}
+
+void redrawScreen (void) {
+ uint8_t lineToPlace = 0b00000000;
+ for (uint8_t matrix=0; matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+ if (matrix*8 + line >= currentY && matrix*8 + line < currentY+4) lineToPlace = figure[currentFigure][currentTurn][matrix*8 +line - currentY]; else lineToPlace = 0b00000000;
+ //lineToPlace = 0b11111111; else lineToPlace = 0b00000000;
+ //if (currentX <= 4 ) lineToPlace <<= 4 - currentX; else lineToPlace >>= currentX - 4;
+ lineToPlace = moveLine(lineToPlace, currentX);
+ maxOne(matrix+1, line+1, screen[matrix*8 + line] | lineToPlace );
+ }
+}
+
+uint8_t checkDown (void){
+ uint8_t lineToPlace = 0b00000000;
+ for (uint8_t line = 0; line<4; line ++){
+ lineToPlace = figure[currentFigure][currentTurn][line];
+ lineToPlace = moveLine(lineToPlace, currentX);
+ if ( (lineToPlace & screen[ currentY+1 + line]) != 0) return 1;
+ }
+ return 0;
+}
+
+uint8_t checkStart (void){
+ uint8_t lineToPlace = 0b00000000;
+ for (uint8_t line = 0; line<4; line ++){
+ lineToPlace = figure[currentFigure][currentTurn][line];
+ lineToPlace = moveLine(lineToPlace, currentX);
+ if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+ }
+ return 0;
+}
+
+uint8_t checkLeft (void){
+ uint8_t lineToPlace = 0b00000000;
+ uint8_t tmpLineToPlace;
+ for (uint8_t line = 0; line<4; line ++){
+ lineToPlace = figure[currentFigure][currentTurn][line];
+ tmpLineToPlace = moveLine(lineToPlace, currentX);
+ if ( (tmpLineToPlace & 0b10000000) != 0) return 1;
+ lineToPlace = moveLine(lineToPlace, currentX - 1);
+ if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+ }
+ return 0;
+}
+
+uint8_t checkRight (void){
+ uint8_t lineToPlace = 0b00000000;
+ uint8_t tmpLineToPlace;
+ for (uint8_t line = 0; line<4; line ++){
+ lineToPlace = figure[currentFigure][currentTurn][line];
+ tmpLineToPlace = moveLine(lineToPlace, currentX);
+ if ( (tmpLineToPlace & 0b00000001) != 0) return 1;
+ lineToPlace = moveLine(lineToPlace, currentX + 1);
+ if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+ }
+ return 0;
+}
+
+uint8_t checkTurn (void){
+ uint8_t lineToPlace = 0b00000000;
+ uint8_t testTurn;
+ if (currentTurn < 3) testTurn = currentTurn + 1; else testTurn = 0;
+ for (uint8_t line = 0; line<4; line ++){
+ lineToPlace = figure[currentFigure][testTurn][line];
+ lineToPlace = moveLine(lineToPlace, currentX);
+ //if ( (lineToPlace & 0b00000001) != 0) return 1;
+ if (currentFigure == 1 && currentX == 8) return 1;
+ if (currentFigure == 2 && currentX == 1) return 1;
+ if (currentFigure == 2 && currentX == 8) return 1;
+ if (currentFigure == 3 && currentX == 1) return 1;
+ if (currentFigure == 3 && currentX == 8) return 1;
+ if (currentFigure == 4 && currentX == 2) return 1;
+ if (currentFigure == 4 && currentX == 7) return 1;
+ if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+ }
+ return 0;
+}
+
+void checkFullLine (void) {
+ uint8_t a = 0;
+ uint8_t matrix = currentY / (INUSE*8);
+ uint8_t remainder = currentY % (INUSE*8);
+ for (uint8_t line = 0; line<4; line ++) if (line + currentY < INUSE*8) {
+ if (screen[line + currentY] == 0b11111111) {
+ for (a = 0; a<3; a++) {
+
+ maxOne(matrix + 1, line + remainder +1, 0b00000000 );
+ //screen[line + currentY] = 0b11111111;
+ //redrawScreen ();
+ delay_ms(1000);
+ maxOne(matrix + 1, line + remainder +1, 0b11111111 );
+ //screen[line + currentY] = 0b00000000;
+ //redrawScreen ();
+ delay_ms(1000);
+ }
+ for (a = line + currentY; a>0; a--) screen[a] = screen[a-1];
+ bleepBleepSound ();
+ transmit_str_USART0("Score: ");
+ transmit_4digit_USART0(score++);
+ transmit_str_USART0(" \r");
+ }
+ }
+}
+
+void gameOver () {
+ uint8_t ornament[3] = {0b00100100, 0b10010010, 0b01001001};
+ uint8_t offset = 0;
+ for (uint8_t matrix=0; matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+ maxOne(matrix + 1, line + 1, 0b11111111 );
+ delay_ms(500);
+ }
+ for (uint8_t matrix=0; matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+ maxOne(matrix + 1, line + 1, 0b00000000 );
+ screen[ matrix*8 + line] = 0b00000000;
+ delay_ms(500);
+ }
+
+ while (u == 0) {
+ for (uint8_t matrix=0; matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+ maxOne(matrix + 1, line + 1, ornament[(line+offset) % 3] );
+ }
+ if (offset < 2) offset ++; else offset = 0;
+ delay_ms(1000);
+ }
+
+ score = 1;
+ transmit_str_USART0("Score: 0000 \r");
+
+ currentFigure = (uint8_t)((uint16_t)timer % (uint16_t)5);
+ currentTurn = 0;
+
+}
+
+void stopFigure (void) {
+ uint8_t lineToPlace = 0b00000000;
+ for (uint8_t line = 0; line<4; line ++) {
+ lineToPlace = figure[currentFigure][currentTurn][line];
+ lineToPlace = moveLine(lineToPlace, currentX);
+ screen[line + currentY] |= lineToPlace;
+ }
+ checkFullLine ();
+ currentY = 0;
+ currentTurn = 0;
+ currentX = STARTX;
+ currentFigure = randomDigit;
+
+ if (checkStart () != 1) redrawScreen (); else gameOver();
+}
+
+// --------------------------------- MAIN -----------------------------------------------------------------------
+
+int main(void) {
+
+ // initialize the direction of PORTD to be output
+
+ set_output(DDRB, DATAIN);
+ set_output(DDRB, LOAD);
+ set_output(DDRB, CLOCK);
+ set_output(DDRB, BEEPER);
+
+ // initiation of the max 7219
+ for (uint8_t matrix=0; matrix < INUSE; matrix++) {
+ maxOne(matrix+1, max7219_reg_scanLimit, 0x07);
+ maxOne(matrix+1, max7219_reg_decodeMode, 0x00); // using a led matrix, not digits
+ maxOne(matrix+1, max7219_reg_shutdown, 0x01); // not in shutdown mode
+ maxOne(matrix+1, max7219_reg_displayTest, 0x00); // no display test
+ for (uint8_t line=0; line<8; line ++) maxOne(matrix+1, line+1, 0); // empty registers, turn all LEDs off
+ maxOne(matrix+1, max7219_reg_intensity, 0x0f & 0x0f); // the first 0x0f is the value you can set (range: 0x00 to 0x0f)
+ }
+
+ init_USART0(UBRR); // initialize USART0
+ setRXCIE_USART0();
+ sei();
+
+ screen[ INUSE*8 ] = 0b11111111; // bottom border for checking
+ currentFigure = (uint8_t)((uint16_t)timer % (uint16_t)RAND_MAX);
+ transmit_str_USART0("Score: 0000 \r");
+
+ while (1) {
+ if (timer % 20000 == 0) {
+ redrawScreen ();
+ if (checkDown() != 1) currentY ++; else {
+ if (prewRandomDigit == randomDigit) randomDigit++;
+ if (randomDigit > RAND_MAX+1) randomDigit = 0;
+ prewRandomDigit = randomDigit;
+ stopFigure ();
+ }
+ }
+ timer ++;
+ if (u != oldu){
+ oldu = u;
+ randomDigit = (uint8_t)((uint16_t)timer % (uint16_t)RAND_MAX);
+ //transmit_1byte_USART0(timer);
+ //transmit_4digit_USART0(u);
+ if (67 == u) {
+ //transmit_str_USART0(" RIGHT \r");
+ if (checkRight () != 1) currentX ++;
+ redrawScreen ();
+ beep ();
+ }
+ if (68 == u) {
+ //transmit_str_USART0(" LEFT \r");
+ if (checkLeft () != 1) currentX --;
+ redrawScreen ();
+ beep ();
+ }
+ if (66 == u) {
+ //transmit_str_USART0(" DOWN \r");
+ if (checkDown() != 1) currentY ++;
+ redrawScreen ();
+ beep ();
+ }
+ if (65 == u) {
+ //transmit_str_USART0(" UP \r");
+ if (checkTurn () != 1) {
+ if (currentTurn < 3) currentTurn ++; else currentTurn = 0;
+ redrawScreen ();
+ beep ();
+ }
+ }
+ u = 0;
+ }
+ }
+
+}
+